我使用 express.js、mongodb、ejs。在导航栏中,有一个电子邮件图标,将显示新电子邮件的数量。
<%=newEmailCount%>
然后我需要将这个 newEmailCount 添加到每个路由。
Emails.count({userId: userId, new: true})
我的问题是在 express.js 中,我如何添加一个可以被每条路由执行的全局函数?
最佳答案
如果你想获取每个 GET
请求的计数,那么你可以使用以下方法
router.get('*', function(req, res, next) {
res.locals.newEmailCount = Emails.count({userId: userId, new: true})
next();
})
您需要通过将其置于所有其他路由之上来确保它始终被执行。
然后您可以将 res.locals.newEmailCount
传递给您的渲染函数,该函数为匹配的路由渲染 HTML 文件。
如果您使用的是应用程序实例级路由处理,这也适用。
关于javascript - 如何创建一个全局函数来访问 express.js 中的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38216812/