Node.js实现简单的POST请求

这个小demo的结构和上一篇写的Node.js实现简单的GET请求一样。

唯一不同的是Node.js实现简单的POST请求

之前的get.js改成了post.js

下面是post.js文件

//这个案例展示get请求参数如何获得
var finalhandler = require('finalhandler')
var http = require('http')
var serveStatic = require('serve-static')
var url = require('url')
var fs = require('fs')
var querystring = require('querystring')
// Serve up public/ftp folder
//配置静态资源服务器,将public文件夹静态化出来

var serve = serveStatic('public', {'index': ['index.html', 'index.htm']})

// Create server
var server = http.createServer(function onRequest (req, res) {
    //路由
    var pathname = url.parse(req.url).pathname;
    if(pathname == '/addStudent'){
        //定义了一个content变量,用于暂存请求体信息
        var content = '';
        //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量
        //post请求经常会很长,此时会分段,网上有文章大约800k左右是一个HTTP报文段
        req.on('data',(chunk) => {
            //将段落合并
            content += chunk;
        })
        //当所有数据发送完毕之后,此时将会触发end事件
        req.on('end',() => {
            queryJSON = querystring.parse(content);

            var data = `姓名:${queryJSON.name}\r\n年龄:${queryJSON.age}\r\n性别:${queryJSON.sex}\r\n`;
            fs.writeFile(`./student_data/${queryJSON.name}.txt`,data,(err) => {
                console.log(err);
                if(err){
                    res.end('err');
                }else{
                    res.end('ok');
                }
            })
            return;


            // console.log(content);
            // res.end('ok')
        })
        return;
    }
    serve(req, res, finalhandler(req, res))
})

// Listen
server.listen(3000)

其余的文件和启动项目的方法都在上一篇博客里Node.js实现简单的GET请求写到了,这里不在赘述。