我正在创建一个休息api我有Post / Movies的终点:Request body应该只包含电影标题,并且它的存在应该被验证基于传递的标题,其他电影细节应该从thememoviedb获取,并保存到应用程序数据库中。
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的新手,所有这些只是学习
答案 0 :(得分:0)
在过滤器对象PyPi regex
中使用$eq
运算符
{ <field>: { $eq: <value> } }
所以最后的片段就像这样:
app.post('/movies', (req, res) => {
/* code ... */
let { title } = req.body
db.collection('movies').findOneAndUpdate({ title: { $eq: title } }, { title: 'Avengers' }, (err, result) => {
if (err) {
res.send({ 'error': 'An error has occured' });
} else {
res.send(result.ops[0]);
}
});
});
答案 1 :(得分:0)
尝试以下方法,
db.collection('movies').findOneAndUpdate({title:req.body.title},{
$set:{
'Avengers'
}})