Javascript Express:请求主体为空
我有一个简单的express server:Javascript Express:请求主体为空,javascript,node.js,express,post,Javascript,Node.js,Express,Post,我有一个简单的express server: const express=require('express'); const exphbs=require('express-handlebar'); const path=require('path'); const bodyparser=require('body-parser'); 常量app=express(); const hbs=exphbs.create({ defaultLayout:'main', extname:'hbs' }
const express=require('express');
const exphbs=require('express-handlebar');
const path=require('path');
const bodyparser=require('body-parser');
常量app=express();
const hbs=exphbs.create({
defaultLayout:'main',
extname:'hbs'
});
const | u PORT=process.env.PORT | 80;
附件发动机(“hbs”,hbs发动机);
应用程序集(“查看引擎”、“hbs”);
应用程序集(“视图”、“视图”);
use(bodyparser.urlencoded({extended:false}));
use(bodyparser.json({type:'application/*+json'}));
app.use(express.static(path.join(uu dirname,'public'));
应用程序使用(需要('./路由器/登录');
serverStart();
异步函数serverStart(){
试一试{
应用程序侦听(_端口);
log(“[SERVER]服务器正在侦听端口”+_port+”);
}捕获(错误){
console.log(错误);
}
}
我一直在尝试您的代码,它工作正常,您只需更改代码:
app.use(bodyparser.json({type:'application/*+json'}));
使用以下代码:
app.use(bodyparser.json({type:'application/json'}));
注意:如果您使用的是最新版本的express
,则不应安装正文解析器
,因为已包含正文解析器
因此,您可以使用以下代码:
app.use(express.json());
use(express.urlencoded({extended:false}));
我希望它能帮助您。尝试使用app.use(bodyparser.urlencoded({extended:true}));您是否尝试过在类型中不使用
*+
bodyparser.json({type:'application/*+json'})
。中给出的示例更像是application/json
或*/json
。请向我们展示您使用的postman命令行。你要送尸体吗?如果是,它是如何编码的?如果你的中间件覆盖了你要发送的正文的实际格式,那么这一切都是有效的,因为这两个格式中的一个没有对齐。@David784是的,但它没有对齐working@jfriend00完成