使用Node后端处理POST请求

Posted anbrera

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Node后端处理POST请求相关的知识,希望对你有一定的参考价值。

后端代码

console.log("启动post监控")

var http = require(‘http‘);
var fs = require(‘fs‘);
var url = require(‘url‘);

var express = require(‘express‘);
const querystring = require("querystring");
var router = express.Router();
router.post(‘/login‘, function (req, res, next) {
    var name = req.body.name;
    var pass = req.body.password;
    console.log(‘name:‘ + name);
    console.log(‘pass:‘ + pass);
    if (name == ‘sis‘ && pass == ‘1‘) {
        res.send(‘1‘);
    }
    res.end(‘is over‘);
});



// 创建服务器
http.createServer(function (request, response) {
    // 解析请求,包括文件名
    var pathname = url.parse(request.url).pathname;

    // --------------
    console.log("request.url", request.url);
    console.log("request.method", request.method.toLowerCase());
    // request.url === ‘/post‘ &&
    if (request.method.toLowerCase() === ‘post‘) {
        var alldata = ‘‘;
        request.on(‘data‘, function (chunk) {
            alldata += chunk;
        });

        request.on(‘end‘, function () {
            // request.end(‘success‘);
            //将字符串转换位一个对象   
            console.log("alldata", alldata);
            var dataString = alldata.toString();
            //将接收到的字符串转换位为json对象
            var dataObj = querystring.parse(dataString);
            //输出数据
            console.log("dataObj", dataObj); //{ username: ‘王五‘, sex: ‘男‘, hobby: [ ‘吃饭‘, ‘睡觉‘, ‘打豆豆‘ ] }
            console.log("dataObj.name", dataObj.name); //王五
            console.log("dataObj.pass", dataObj.pass); //
            console.log("dataObj.hobby", dataObj.hobby); //[ ‘吃饭‘, ‘睡觉‘, ‘打豆豆‘ ]

            if (dataObj.name === 1) {
                console.log("处理程序:", "我该干啥?");
            }
        });
    };


    // 输出请求的文件名
    console.log("Request for " + pathname + " received.");

    // 从文件系统中读取请求的文件内容
    fs.readFile(pathname.substr(1), function (err, data) {
        if (err) {
            console.log(err);
            // HTTP 状态码: 404 : NOT FOUND
            // Content Type: text/plain
            response.writeHead(404, {
                ‘Content-Type‘: ‘text/html
            });
        } else {
            // HTTP 状态码: 200 : OK
            // Content Type: text/plain
            response.writeHead(200, {
                ‘Content-Type‘: ‘text/html‘
            });

            // 响应文件内容
            response.write(data.toString());
        }
        //  发送响应数据
        response.end();
    });

}).listen(8080);

// console.log("结束post监控")

 

以上是关于使用Node后端处理POST请求的主要内容,如果未能解决你的问题,请参考以下文章

使用Node后端处理网页GET请求

将 Node.js GET /POST 请求更改为 Ajax

axios发送post请求node服务器无法通过req.body获取参数

node.js能否接收http post数据吗

vue中使用axios处理post方法导出excel表格(后端返回文件流)

如何在前端 apollo-client 上处理来自 Node/Koa 的后端错误