Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express bodyparser isn';t工作不正常_Javascript_Node.js_Express_Body Parser - Fatal编程技术网

Javascript Express bodyparser isn';t工作不正常

Javascript Express bodyparser isn';t工作不正常,javascript,node.js,express,body-parser,Javascript,Node.js,Express,Body Parser,要设置bodyparser,我使用以下代码: const express = require('express') const app = express(); const bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); 现在,如果我的快速路由器中有以下POST路由: var router = requ

要设置bodyparser,我使用以下代码:

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

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: false
}));
现在,如果我的快速路由器中有以下POST路由:

var router = require('express').Router();

router.post('/sendadvertisement', async (req, res) => {
  console.log(req.body)
});
结果是
[Object:null-prototype]{advision:'test'}
->我的
req.body
不是空的,因为它在我的控制台输出中是json格式的

我真的不明白这个结果是如何发生的,因为我定义了主体应该是json格式的。
我还用app.use(express.json())试用了它。,也不起作用。

我用app替换了路由器,一切正常

Router.get/post etc仅用于在安装了诸如
app之类的中间件功能后定义子路由。使用('route')
处理路由。如果你想使用路由器,你应该使用
app.use(…)
挂载路由,然后使用
router.post(…)

另见:


如果您使用的是express,那么您可以使用此代码来设置身体解析器

app.use(express.json( {extended:false} ));
app.use(express.urlencoded({extended: false}));
app.use(bodyParser.urlencoded({extended:false}));
use(bodyParser.json());

这也是一个错误,提交后页面会滚动。

可能的重复:@S.Kuiter已经阅读了本文。可能的重复不是一个解决方案,它只是告诉我们它与路线有关编辑我的答案如果您有新问题,请单击按钮提问。如果此问题有助于提供上下文,请包含指向此问题的链接-
app.use(express.json( {extended:false} ));
app.use(express.urlencoded({extended: false}));