const http = require('http');
const fs = require('fs');
const path = require('path');
const url = require('url');
const mime = require('mime');
const qs = require('querystring');
const router = require('./router');
const conn = require('./conn');
http.createServer(function (req, res) {
//静态资源的改进
var pathname = url.parse(req.url).pathname; //客户端请求的路径 url.parse()将url字符串转换成obj对象
var ext = path.extname(pathname); //请求的后缀名,可以通过有没有后缀名判断是静态资源还是动态资源 .html
var mimestr = mime.getType(url); //请求文件的类型 text/JavaScript
if (ext) {
fs.readFile(path.join(__dirname, './static', pathname), function (err, data) {
if (err) {
console.log(err);
} else {
res.writeHead(200, {
'Content-Type': mimestr + ';charset=utf-8'
});
res.end(data);
}
});
}
//动态资源
// router(req,res,'/getdata',function(req,res){ //获取数据的操作
// // res.write('/getdata');
// conn.connect(); //进行数据库的连接
// conn.query("select * from goods",function(error,results,fields){
// res.end(JSON.stringify(results)); //发送数据
// });
// conn.end(); //结束连接
// });
//增加数据
// get请求
// req.method();可以得到请求的类型
// form表单提交的数据req.url?
router(req, res, "/addData", function (req, res) {
var o = url.parse(req.url,true);
var sql = "insert into goods(goodsname,price) values(?,?)";
var params = [o.query.goodsname, o.query.price];
conn.query(sql, params, function (error, results, fields) {
if (!error) {
console.log('--------------------------insert----------------------------');
console.log(JSON.stringify(results));
console.log('-----------------------------------------------------------------\n\n');
res.end(JSON.stringify(results));
}
})
// conn.end();
});
//post请求 enctype:"application/x-www-form-urlencoded"
var body = "";
req.on("data",function(chunk){ //
body+=chunk;
})
req.on("end",function(){
console.log(body);
var o = qs.parse(body);
var sql = "insert into goods(goodsname,price) values(?,?)";
var params = [o.title,o.price,o.yprice,o.imgsrc];
conn.query(sql,params,function(error, results, fields){
// console.log(error,results);
// console.log("========================="+JSON.stringify(fields)+"=========================")
if(!error){
console.log(JSON.stringify(results));
res.end(JSON.stringify(results));
}
})
})
//上传文件 enctype="multipart/form-data"
var form = new formidable.IncomingForm();
//上传文件存放的临时路径,一定是绝对路径
form.uploadDir = path.join(__dirname,"/static/uploads");
//表单提交的数据已经接受完毕
form.parse(req, function(err, fields, files) {
// res.write('received upload:\n\n');
// // util.inspect 将任意对象转换成字符串
// res.end(util.inspect({fields: fields, files: files}));
fs.rename(files.files.path, "./static/uploads/upload_" + new Date() * 1 + ".jpg", function (err) {
if (err) {
throw Error("改名失败");
}
res.writeHead(200, {
'content-type': 'text/plain'
});
res.write('重命名成功');
res.end();
});
});
}).listen(8000);
console.log('server is success');