如何在Javascript(NodeJS)中将对象设置为可为null



我一直收到一个错误:TypeError: Cannot read property 'doors' of null。我希望能够将doors设置为可以为null,这样就可以避免这个错误,只需点击错误响应并返回404。但是,我不知道该怎么做?

这是我的代码:

Data.findOne({
'_id':'6182544c20d538aefe49def0',
'doors.id':doorId  
}, {
'doors.$':1
}, function(err, data) {
if (err) {
res.status(404).send('No Matching Door Found')
} else if (data.doors[0].status === 'open') {
res.status(401).send('Door already unlocked')
} else {
res.status(200)
}
})

错误出现在第三行,它找不到ID等于doorId的门对象。

我曾尝试将doors.id设置为!doors.id,然而,无论输入的内容如何,这都会一直命中404。感谢您的帮助。

看来您的整个查询都是错误的。我建议首先尝试这个查询以满足您的需求:

Data.findOne({
'_id':'6182544c20d538aefe49def0',
'doors.id':doorId  
}, {
'doors.$':1
}).exec(function(err, data) {
if (err) {
res.status(404).send('No Matching Door Found')
} else if (data.doors[0].status === 'open') {
res.status(401).send('Door already unlocked')
} else {
res.status(200)
}
})

然后我建议您阅读更多关于MongoDB和Mongoose的内容。

相关内容

  • 没有找到相关文章

最新更新