3 回答
TA贡献1786条经验 获得超11个赞
在收到来自同类用户的一些指导后,我设法使它开始工作。我不知道这样做是否正确,但是我的代码可以按我的意愿工作,所以我决定更新对我有用的东西。我将中间件更新为此
router.get('/support', (req, res) => {
Message.find({})
.then(messages => {
res.render("support", {messages}); // I rendered the template
})
.catch(err => {
res.json({
confirmation: 'fail',
message: err.message
})
})
});
然后在我的EJS文件中,我简单地添加了它
<p><%= messages[0].sender %></p>
这对我有用
TA贡献1777条经验 获得超3个赞
试试这个:
router.get('/support', (req, res) => {
Message.find({}).exec()
.then(messages => {
res.json({
confirmation: 'success',
data: messages
})
})
.catch(err => {
res.json({
confirmation: 'fail',
message: err.message
})
})
});
第一件事:添加{}作为查询条件。猫鼬也许会接受空参数,但是我不确定它是如何处理的(我在文档中没有看到关于这种语法的任何提及)。
第二:findOne不兑现承诺。查询结果有一种方便的then方法,但我不确定catch。您应该执行exec()以获得js承诺。
TA贡献1847条经验 获得超7个赞
Marcin的评论会很好,或者,如果您不需要视图中的所有属性,则只能发送以下内容:
res.json({
confirmation: 'success',
message: messages.body,
sender: messages.sender
})
添加回答
举报