我正在创建一个REST API,其中我有一个用于Post/Movies的端点:请求体应仅包含电影标题,并且应验证其是否存在。根据传递的标题,应从themoviedb中获取其他电影详细信息,并保存到应用程序数据库中。
app.post('/movies', (req, res) => {
request('https://api.themoviedb.org/3/discover/movie?callback=JSONP_CALLBACK&sort_by=popularity.desc&api_key=2931998c3a80d7806199320f76d65298', function (error, response, body) {
console.log('error:', error); // Print the error if one occurred and handle it
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
});
db.collection('movies').findOneAndUpdate(req.body.title,{
title: 'Avengers',
},(err, result) => {
if (err) {
res.send({
'error': 'An error has occured'
});
} else {
res.send(result.ops[0]);
}
});
});
当我运行这个应用程序时,我遇到了这个错误,我在这里做错了什么?我是nodejs的新手,正在学习所有这些东西。
req.body.title
并不是一个"对象"。实际上,它看起来更像是一个打字错误,下一个可能是{title:'复仇者联盟'}
这样的内容才是你想表达的。或者可能是{title:req.body.title}
。总之,看起来你忘记删除测试代码并在错误的地方添加了变量。 - Neil Lunn