node处理get和post请求

原文链接: http://www.cnblogs.com/bao2333/p/10143049.html
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');

转载于:https://www.cnblogs.com/bao2333/p/10143049.html

猜你喜欢

转载自blog.csdn.net/weixin_30571465/article/details/94922095