Javascript 当我有了密钥和值时,为什么会出现错误?
接收到错误“请求字段中缺少firstName”,即使我输入了firstName键并填写了值的请求。有人有什么想法吗?我真的需要帮助,因为我是新手。作者是一个猫鼬收藏,我试图通过“如果”语句返回作者列表Javascript 当我有了密钥和值时,为什么会出现错误?,javascript,node.js,express,Javascript,Node.js,Express,接收到错误“请求字段中缺少firstName”,即使我输入了firstName键并填写了值的请求。有人有什么想法吗?我真的需要帮助,因为我是新手。作者是一个猫鼬收藏,我试图通过“如果”语句返回作者列表 app.post('/authors', function (req, res) { const requiredFields = ['firstName', 'lastName', 'userName']; requiredFields.forEach(field => { if
app.post('/authors', function (req, res) {
const requiredFields = ['firstName', 'lastName', 'userName'];
requiredFields.forEach(field => {
if (!(field in req.body)) {
const message = `Missing \`${field}\` in request body`;
console.error(message);
return res.status(400).send(message);
}
});
Author
.findOne({
userName: req.body.userName
})
.then(author => {
if (author) {
const message = `Username already taken`;
console.error(message);
return res.status(400).send(message);
} else {
Author
.create({
firstName: req.body.firstName,
lastName: req.body.lastName,
userName: req.body.userName
})
.then(author => res.status(201).json({
_id: author.id,
name: `${author.firstName} ${author.lastName}`,
userName: author.userName
}))
.catch(err => {
console.error(err);
res.status(500).json({
error: 'Something went wrong'
});
});
}
})
.catch(err => {
console.error(err);
res.status(500).json({
error: 'Something went really really wrong'
});
});
});
解决方案可以是以下任意一种
const express=require('express');
常量app=express();
const bodyParser=require('body-parser');
app.use(bodyParser.json());//支持json编码的实体
app.use(bodyParser.urlencoded({extended:true}));//支持编码体
app.post('/authors',函数(req,res){
const requiredFields=['firstName','lastName','userName'];
控制台日志(请求主体);
requiredFields.forEach(字段=>{
如果(!(请求正文中的字段)){
const message=`Missing\`${field}`在请求体`;
控制台错误(消息);
返回res.status(400)。发送(消息);
}
});
//你的其他代码
});
满足所有条件后,我使上述代码正常运行。如果您使用Express 4.16.0或更高版本,您可以使用以下选项:
app.use(express.json())代码>请解释您试图实现的结果,以及请求的主体是什么。还有什么是作者?这是猫鼬收藏吗?你可能想在问题中提到这一点。谢谢你,我编辑了这篇文章。Yes Author是mongoose集合,我正在尝试检索集合中的作者列表。是否转储/检查req.body
?价值是什么?您是否使用了正确的中间件?我将如何转储/检查req.body?我没有听说过。我尝试了身体分析器,但没什么不同。当我运行get请求时,我获得了作者的集合,这些作者可能是