【发布时间】:2021-04-07 00:39:14
【问题描述】:
我正在尝试通过正文中的 POST 方法将 json 发送到我的 nodeJs 应用程序。 为此,我使用 POSTMAN 创建请求,并使用正确的 consnt-type 标头和正文 JSON 行。尽管控制台中返回的消息为“OK”,但 req.body 为 {} 为空。 你知道我的代码有什么问题吗?
const bodyParser = require('body-parser');
const { Client } = require('pg');
const express = require('express');
const app = express();
// create application/json parser
const jsonParser = bodyParser.json()
// create application/x-www-form-urlencoded parser
const urlencodedParser = bodyParser.urlencoded({ extended: false })
const hostname = '127.0.0.1';
const port = 3000;
const dbSchema = 'public';
const client = new Client({
user: 'postgres',
host: 'localhost',
database: 'postgres',
password: '123123',
port: 5432,
});
client.connect();
/* =========== Some Initialize staff =============== */
// parse various different custom JSON types as JSON
app.use(bodyParser.json({ type: 'application/*+json' }))
app.use(bodyParser.urlencoded({
extended: true
}));
app.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
/* =========== FROM HERE =============== */
app.post('/post-test', urlencodedParser, (req, res) => {
console.log('Got body:', req.body);
res.sendStatus(200);
});
app.get('/',(req,res)=>{
res.status(200).send('Get Ready for something awesome!\n');
});
【问题讨论】:
-
我通常使用 -
route.use(express.json());route.use(express.urlencoded({extended:true}));在您的情况下,route是app。新版 Express 不用body-parser -
当我添加以下行时:app.use(express.json()); app.use(express.urlencoded({extended:true}));开始出现以下错误:SyntaxError: Unexpected token in JSON at position 92
-
你用的express是什么版本的?
-
express": "^4.17.1",
-
urlencodedParser是为了什么?如邮递员屏幕截图所示,输入 JSON 似乎有问题?