• node处理get和post请求


    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('-----------------------------------------------------------------
    
    ');
                    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:
    
    ');
                    // // 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');
  • 相关阅读:
    二叉树的镜像
    Prototype 模式
    假如编程语言在一起聚餐
    从零开始——Ubuntu系统安装LAMP
    从零开始——Ubuntu系统配置与软件安装
    从零开始——制作Ubuntu系统U盘启动
    apt-get upgrade failure with libc
    再生龙Clonezilla备份Ubuntu系统
    Ubuntu上apache多端口配置虚拟主机的方法
    bash & Makefile & 正则表达式学习
  • 原文地址:https://www.cnblogs.com/bao2333/p/10143049.html
Copyright © 2020-2023  润新知