json Node.js -如何使用Express使用原始请求体

bqf10yzr  于 2023-04-22  发布在  Node.js
关注(0)|答案(2)|浏览(174)

所以我正在制作一个RESTful API,我希望能够接收原始JSON数据(所以我也可以使用我的移动的API),然后从那里将数据保存到我的数据库(mongoDB)中。
但是你看,有一个问题我似乎无法解决,那就是我无法将原始数据作为json使用。
代码很简单

const express = require('express')
const bodyParser = require('body-parser')

const app = express();

app.use(bodyParser.raw({inflate:true, limit: '100kb', type: 'application/json'});

app.post('/post', function(req, res){
 res.send(parse.JSON(req.body));
//to convert it to json but this doesn't seem to work
})

我使用 Postman 发送原始格式的请求

zbdgwd5y

zbdgwd5y1#

const express = require('express')
const bodyParser = require('body-parser')

const app = express();

app.use(bodyParser.raw({inflate:true, limit: '100kb', type: 'application/json'});

app.post('/post', function(req, res){
 res.send(JSON.parse(req.body));
})

在res.send中,您必须使用JSON.parse()而不是parse.JSON(),后者会抛出错误,因为它不正确
如果您想了解更多关于JSON.parse信息,可以访问mdn docs

jchrr9hc

jchrr9hc2#

var app = express();
这将与最新的更新工作。

app.post("/w/wht", express.raw({ type: '*/*' }), function (req, res) {

  console.log("last", req.body.toString())
})

这段代码使用www.example.com()方法在Node.js/Express应用程序中设置了一个路由app.post。该路由正在侦听到/w/wht端点的HTTP POST请求。
路由处理函数接受两个参数:req(请求的缩写)和res(响应的缩写)。
raw()中间件用于将请求体解析为原始二进制数据,而不考虑其内容类型。
在路由处理函数中,console.log()用于打印请求体的内容,该内容是通过req.body.toString()获得的。调用toString()方法将原始二进制数据转换为字符串,以便将其记录到控制台。
总的来说,这段代码设置了一个路由,将HTTPPOST请求正文的内容作为字符串记录到控制台。

相关问题