Node.js req.body值未定义

Node.js req.body值未定义,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我的req.body始终显示{},即使我在代码中使用了body解析器 用户模型 const userSchema = new mongoose.Schema({ email: { type: String, required:true, index:true, }, password: { type: String, required: true } },{timestamps:t

我的req.body始终显示{},即使我在代码中使用了body解析器

用户模型


const userSchema = new mongoose.Schema({
    email: {
        type: String,
        required:true,
        index:true,
    },
    password: {
        type: String,
        required: true
    }
},{timestamps:true});

module.exports = mongoose.model('User', userSchema); 
路线

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

const {currentUser} = require("../controllers/user");

router.post('/current-user', currentUser);

module.exports = router;
const User = require("../models/user");

exports.currentUser = async (req, res) => {
    const {email} = req.body
    console.log(email)
    // console.log(req.query)
    await User.findOne({email}).then((user) => {
        if (!user) {
            // console.log(user);
            return res.status(401).json({
              error: 'User not found!'
            });
        }
        res.json({
            data:"SUCCESS"
        })
    })
}
控制器

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

const {currentUser} = require("../controllers/user");

router.post('/current-user', currentUser);

module.exports = router;
const User = require("../models/user");

exports.currentUser = async (req, res) => {
    const {email} = req.body
    console.log(email)
    // console.log(req.query)
    await User.findOne({email}).then((user) => {
        if (!user) {
            // console.log(user);
            return res.status(401).json({
              error: 'User not found!'
            });
        }
        res.json({
            data:"SUCCESS"
        })
    })
}
我收到一个错误:即使电子邮件id存在,也找不到用户。 如果我输入console.log(请求正文) =>输出:
{}
控制台日志(请求正文电子邮件) =>输出:
未定义


请帮助我解决此问题。

您可能需要使用bodyPrser()中间件。 你可以阅读更多关于它的内容

然后,在server.js或app.js文件中

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

const app = express();

app.use(router()); //your user defined router middleware
app.use(bodyParser.json()); //this is a bodyparser middleware to read/extract  the 
                           //data from req.body

请不要使用身体解析器,因为你已经在使用express了,身体解析器有一个内置的中间件,比如

const app = express()
app.use(express.json({ limit: '50mb' }))
app.use(express.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 }))
这将完成主体解析器的工作


另外,您能告诉我们您在请求中发送了什么吗?因为这是一个post请求,并且您可能发送了一个空对象,这就是为什么您在请求体中得到{}


我可以看到您正在从中提取电子邮件,但如果您能提供示例请求,肯定会有所帮助。

我已经在使用body parser<代码>app.use(bodyParser.json({limit:“2mb”}))但它显示主体解析器不受欢迎您在请求中发送什么?