从发布请求节点js

时间:2020-03-31 18:59:57

标签: node.js

请告诉我如何使用发布请求声明到达服务器(节点js)的变量。现在,我使用此代码并获取以下内容:

name=Test&ip=192.168.0.1

如何声明变量并为其分配值,就像这样:

var name = "Test"; 
var ip = "192.168.0.1";

我使用的代码:

var http = require("http");
http.createServer(function(request, response){
    if (request.method === 'POST') {
        let body = '';
        request.on('data', chunk => {
            body += chunk.toString(); // convert Buffer to string
        });
        request.on('end', () => {
            console.log(body);
        });
    }
    response.end()
}).listen(3000);

1 个答案:

答案 0 :(得分:1)

使用URLSearchParams很简单:

const http = require("http");

http.createServer(function(request, response){
  // only post is allowed
  if (request.method !== 'POST') {
     response.end()
     return
  }

  let body = '';
  request.on('data', chunk => {
     body += chunk.toString()
  })

  request.on('end', () => {
     const params = new URLSearchParams(body)
     let name = params.get("name")
     let ip = params.get("ip")

     response.write(JSON.stringify({
        name,
        ip
     }))
     response.end()
   })
}
}).listen(3000)

我使用 JSON.stringify 将其插入到简单的包装器中,以使用简单的json返回响应。

当然缺少输入验证,依此类推...