使用 Express 4 在 Node.js 中解析 JSON 发布请求
Posted
技术标签:
【中文标题】使用 Express 4 在 Node.js 中解析 JSON 发布请求【英文标题】:Parsing JSON post requests in Node.js with Express 4 【发布时间】:2014-06-15 10:21:02 【问题描述】:我正在尝试编写一个在 Post 请求中接收 JSON 的简单 Express 应用程序。这是我目前在服务器上的内容:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.post('/acceptContacts', function(req, res)
'use strict';
console.log(req.body);
console.log(req.body.hello);
res.send(200);
);
app.listen(8080);
这是我在浏览器中客户端的内容:
var req = new XMLHttpRequest();
req.open('POST', 'http://localhost:8080/acceptContacts?Content-Type=application/json');
var obj = hello:'world';
req.send(JSON.stringify(obj))
但是,我在服务器的控制台上收到以下输出:
undefined
谁能提出原因?
【问题讨论】:
【参考方案1】:如果您使用setRequestHeader
,它将起作用:
var req = new XMLHttpRequest();
req.open('POST', 'http://localhost:8080/acceptContacts');
req.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
var obj = hello:'world';
req.send(JSON.stringify(obj));
【讨论】:
不控制客户端怎么办?如果客户端没有设置此标头,但我知道它正在发布 JSON 正文,有什么方法可以访问它吗? 是的。如果您还使用app.use(bodyParser.text());
,它应该可以在没有setRequestHeader
的情况下工作。以上是关于使用 Express 4 在 Node.js 中解析 JSON 发布请求的主要内容,如果未能解决你的问题,请参考以下文章
在 Node.js + Express 中使用 Promise 处理错误