json - 如何强制将请求正文解析为纯文本而不是 Express 中的 json?

我正在像这样使用 nodejs + Express (v3):

app.use(express.bodyParser());
app.route('/some/route', function(req, res) {
  var text = req.body; // I expect text to be a string but it is a JSON
});

我检查了请求 header 并且缺少内容类型。即使“Content-Type”是“text/plain”,它似乎也被解析为 JSON。无论如何告诉中间件总是将正文解析为纯文本字符串而不是 json? req 的早期版本曾经有 req.rawBody 可以解决这个问题,但现在它不再存在了。在 Express 中强制将正文解析为纯文本/字符串的最简单方法是什么?

最佳答案

默认情况下 bodyParser.text() 只处理文本/纯文本。更改类型选项以包含 */json*/*

app.use('/some/route', bodyParser.text({type: '*/*'}), function(req, res) {
  var text = req.body; // I expect text to be a string but it is a JSON
});

//or more generally:
app.use(bodyParser.text({type:"*/*"}));

您可以找到文档 here

https://stackoverflow.com/questions/12345166/

相关文章:

json - 在单行上从 jq 获取输出

json - angularjs - ng-重复 : access key and value fr

c# - 使用 C# 调用 json

java - 使用 GSON 解析 JSON 文件

javascript - Javascript对象和JSON对象有什么区别

json - 雅虎财经全币种报价 API 文档

javascript - 未捕获的类型错误 : Cannot read property 'owne

python - 使用 Scrapy 抓取 JSON 响应

php - 如何防止 json_encode() 删除包含无效字符的字符串

PHP json_encode - JSON_FORCE_OBJECT 混合对象和数组输出