我的 req.body 总是显示 {},即使我在我的代码中使用了 body-parser
用户模型
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"
})
})
}
我收到一个错误:找不到用户,即使电子邮件 ID 存在。
如果我 console.log(req.body)
=> 输出:
{}
console.log(req.body.email)
=> 输出:
undefined
请帮我解决这个问题。
答案 0 :(得分:0)
答案 1 :(得分:0)
请不要使用已经弃用的正文解析器,因为您已经在使用 express,因此有一个内置的正文解析器中间件,例如
const app = express()
app.use(express.json({ limit: '50mb' }))
app.use(express.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 }))
这将完成身体解析器的工作。
其他的事情,你能告诉我们你在请求中发送了什么,因为它是一个发布请求,你可能正在发送一个空对象,这就是为什么你在 req.身体?
我可以看到您正在从中提取电子邮件,但如果您能提供示例请求,那肯定会有所帮助。