在我的应用中,我在mongoDB中有一个计数器集合。
POST和GET都可以。
但是PUT不会更新计数器值:
exports.setCounter = (req, res, next) => {
var query = Counter.where({ cid: 'supercounter' })
console.log('req body setCounter ' + req.body.value);
Counter.find().then(
(counter) => {
console.log(counter)
switch (req.body.value) {
case 'aco': // add a company
counter.numco = counter.numco + 1;
break;
case 'dco': // delete a company
counter.numco = counter.numco - 1;
break;
case 'ausco': // add a company user
console.log(counter.numusco);
counter.numusco = counter.numusco + 1;
console.log(counter.numusco);
break;
case 'dusco': // delete a company user
counter.numusco = counter.numusco - 1;
break;
}
query.updateOne(counter).then(
() => {
res.status(201).json({
message: 'Counter updated successfully!'
});
}
).catch(
(error) => {
res.status(400).json({
error: error
});
}
)
}
)
};
所有计数器均为数字。 我发送了“ ausco”值,但是没有用。
这是nodemon控制台日志:
有人知道为什么我会得到Undefined和NaN吗?
感谢您的帮助:)
答案 0 :(得分:2)
看来console.log(counter)
正在输出数组。
访问例如console.log(counter.numusco);
应该是console.log(counter[0].numusco)
;
编辑:明确“为什么”
正在输出 undefined
,因为数组对象上不存在numusco属性
NaN
之所以出现,是因为使用undefined
进行数学运算(例如+1)会得出非数字