如何创建将在 express.js 中访问数据库的全局函数
How to create a global function which will access DB in express.js
我用的是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 文件。
如果您使用的是应用程序实例级路由处理,这也适用。
我用的是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 文件。
如果您使用的是应用程序实例级路由处理,这也适用。