【发布时间】:2017-01-05 03:51:24
【问题描述】:
来自 Mongo Shell
db.messages.find({_id:ObjectId('57b12ca68ea2e15c182044f3')})
工作并将记录打印到屏幕上。
来自快递http://localhost:3000/messages/57b12ca68ea2e15c182044f3
app.get('/messages/:id', function (req, res) {
console.log('Searching user with ID: ' + req.params.id);
// message is always null, have tried without "mongoose.Types.ObjectId" but it is still null
Message.findById(mongoose.Types.ObjectId(req.params.id), function(err, message) {
console.log('Found record');
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(message));
});
});
我每次都得到一个空响应。我试过不使用 ObjectId 包装器,但我仍然得到空值。 mongoDB 连接很好,因为我有一个Message.find({}, function(err, messages) { ... } 成功返回所有消息。
我做错了什么?
【问题讨论】:
-
检查
err是否有错误? -
您能否编辑您的问题以显示
Message的架构以及您要查找的文档? -
是的,但我现在没有它。明天补上。
-
@JohnnyHK,你把我引向了正确的方向,我在猫鼬模式中定义了
_id: String,。
标签: mongoose