无法在nodejs中对Router使用body-parser



我正在使用Nodejs和使用expressjs,现在我正试图使用"body-parser"与"router"但现在我得到以下错误[对象对象],我该如何解决这个问题?这是我的api.router.js"文件

const express = require('express');
const apiController = require('../controllers/api.controller');
const router = express.Router();
var bodyParser = require('body-parser')
// Endpoint for creating a new record
router.post('/new', apiController.addUser);
module.exports = router;

这里是我的"api。controller。js">

const User = require('../models/user.model');
const addUser = async (req, res) => {
const { firstName, lastName, age } = req.body;
console.log(req.body);
...
}

从代码中删除以下行:

var bodyParser = require('body-parser');
在定义路由之前,将以下代码添加到api.router.js文件中:
router.use(express.json());
router.use(express.urlencoded({ extended: true }));

作者解释了两种用法

Express/Connect顶级泛型和表达route-specific

您可以使用其中任何一个,也可以根据您的需求有条件地使用

您可以使用app.use(bodyParser.json());app.use(express.json());

const express = require("express");
const app = express();
var bodyParser = require('body-parser')
const helloworld_route = require("./routes/helloworld");
const port = process.env.PORT || 2000;
app.use(bodyParser.json());
app.use("/", helloworld_route);
app.listen(port, () => {
console.log(`Listening on ${port}`);
});

最新更新