首页 > 解决方案 > 为什么控制不在 req.on("data", data => { }); 我正在尝试处理 POST 方法数据

问题描述

** 我正在尝试获取 POST 方法提交的数据,但我无法获取数据,因为在 req.on("data", data=> {}) 内部没有更新 body 变量。**

const {createServer} = require("http");
const {createReadStream} = require("fs");
const {decode} = require("querystring");

const sendfile = (res, status, type, filepath) => {
    res.writeHead(status, {"Content-Type" : type}); 
    createReadStream(filepath).pipe(res); //readable stream work with writable stream 
};
createServer((req, res) =>{
    if(req.method === 'POST') {
        let body = "";
        req.on("data", data => {
            body+=data;
        });
        req.on("end", () => {
            const {name, email, message} = decode(body);
            console.log(`Name : ${name}`);
            console.log(`Email : ${email}`);
            console.log(`Message : ${message}`);
        });
    }
    switch(req.url) {
        case "/" : return sendfile(res, 200, "text/html", "./home_page.html");
        case "/message" : return sendfile(res, 200, "text/html", "./forms.html")
        default : return sendfile(res, 200, "text/html", "./404.html");
    }
}).listen(8000);

标签: javascriptnode.js

解决方案


应该:

req.on("data", (data)=> {})

推荐阅读