我正在使用nodejs和mongoose来构建一个小项目。我正在使用“count()”函数来检查我的集合中是否有特定文档。
由于某种原因,当集合中不存在“_id”属性时,“count”值为“undefined”而不仅仅是纯零。
app.get('/:id', function (req, res) {
var userId = req.params.id;
User.count({_id: userId}, function (err, count) {
if (count === undefined) {
console.log(count); // in the console count is "undefined"
res.status(404).sendFile('./ErrorFiles/404.html', {root: __dirname});
} else {
console.log(count);
res.sendFile('./public/index.html', {root: __dirname}, function (err) {
if (err) {
console.error(err);
res.sendStatus(404);
}
});
}
});
});
在我的“if”语句中我写了“count === undefined”只是为了测试它是否正常工作。无论如何,如果“_id”不在集合中,“count”应该等于零,对吧?
如果“_id”在集合中,那么“count === 1”并且函数运行良好。所以只有当“_id”不在集合中时才会出现问题。
喜欢得到一些帮助,谢谢。