我试图为公共汽车票务系统制作api,但我似乎无法在nodejs中找到它的工作方式
[
{
"id":1,
"hour" : "7:30am"
, "seats" : [
0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0 ,0, 0
]
},
{
"id":2,
"hour" : "9:00am",
"seats" : [
0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0, 0 ,
0, 0, 0 ,0, 0
]
}
这是我的mongodb查询
db.schedules.update({"id":2}, {"$set" : {"seats.8" : "1"}});
在我尝试使用nodejs
之前,一切似乎都运行正常router.put('/reserve/:id/:seat', function(req, res, next) {
schedules.update({"id": req.params.id}, { "$set":{ "seats." + req.params.seat+: "1"}}, function(err, doc) {
if (err) {
console.log(err);
return res.status(400).json({"error"});
}
if (doc.result.nModified) {
res.status(200).json({"status": "ok"});
} else {
res.status(400).json({"error": "The seat hasn't been reserved"});
}
});
这是返回的错误:
SyntaxError:意外的标记+
我尝试了多种方法,但却无法正常工作
答案 0 :(得分:1)
这里有无效的javascript语法:schedules.update({"id": req.params.id}, { "$set":{ "seats." + req.params.seat+: "1"}}
无法在对象定义中连接字符串。
尝试使用属性引用表示法(将创建属性):
let updateObj = { $set: {} }
updateObject.$set['seats.' + req.params.seat] = '1'
schedules.update({"id": req.params.id}, updateObj, function ... )