如何在 Express 应用程序中使用 JSON POST 数据

2024-04-26

我将以下 JSON 字符串发送到我的服务器。

(
        {
        id = 1;
        name = foo;
    },
        {
        id = 2;
        name = bar;
    }
)

在服务器上我有这个。

app.post('/', function(request, response) {

    console.log("Got response: " + response.statusCode);

    response.on('data', function(chunk) {
        queryResponse+=chunk;
        console.log('data');
    });

    response.on('end', function(){
        console.log('end');
    });
});

当我发送字符串时,它显示我收到了 200 响应,但其他两种方法从未运行。这是为什么?


我认为你混淆了response对象与request.

The response对象用于将 HTTP 响应发送回调用客户端,而您想要访问request。看到这个answer https://stackoverflow.com/a/4696338/112196这提供了一些指导。

如果您使用有效的 JSON 并使用以下方式发布它Content-Type: application/json,那么您可以使用bodyParser https://github.com/expressjs/body-parser中间件解析请求体并将结果放入request.body您的路线。

Express 4.16+ 的更新

从版本 4.16.0 开始,新的express.json() http://expressjs.com/en/4x/api.html#express.json中间件可用。

var express = require('express');

var app = express();

app.use(express.json());

app.post('/', function(request, response){
  console.log(request.body);      // your JSON
   response.send(request.body);    // echo the result back
});

app.listen(3000);

更新为 Express 4.0 - 4.15

在 v4 之后,主体解析器被拆分成自己的 npm 包,需要单独安装npm install body-parser

var express = require('express')
  , bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());

app.post('/', function(request, response){
  console.log(request.body);      // your JSON
   response.send(request.body);    // echo the result back
});

app.listen(3000);

对于早期版本的 Express (

var express = require('express')
  , app = express.createServer();

app.use(express.bodyParser());

app.post('/', function(request, response){
  console.log(request.body);      // your JSON
  response.send(request.body);    // echo the result back
});

app.listen(3000);

按照以下方式进行测试:

$ curl -d '{"MyKey":"My Value"}' -H "Content-Type: application/json" http://127.0.0.1:3000/
{"MyKey":"My Value"}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Express 应用程序中使用 JSON POST 数据 的相关文章

随机推荐