Javascript 如何在express.js中创建访问DB的全局函数

Javascript 如何在express.js中创建访问DB的全局函数,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我使用express.js、mongodb和ejs。在导航栏中,有一个电子邮件图标,将显示新电子邮件的数量 <%=newEmailCount%> 我的问题是在express.js中,如何添加可由每个路由执行的全局函数?如果您想获得每个get请求的计数,那么可以使用以下方法 router.get('*', function(req, res, next) { res.locals.newEmailCount = Emails.count({userId: userId, new:

我使用express.js、mongodb和ejs。在导航栏中,有一个电子邮件图标,将显示新电子邮件的数量

<%=newEmailCount%>

我的问题是在express.js中,如何添加可由每个路由执行的全局函数?

如果您想获得每个
get
请求的计数,那么可以使用以下方法

router.get('*', function(req, res, next) {
  res.locals.newEmailCount = Emails.count({userId: userId, new: true})
  next();
})
您需要确保始终通过将其置于所有其他路由之上来执行此操作

然后,您可以将res.locals.newEmailCount传递给渲染函数,该函数为匹配的路由渲染HTML文件

这也适用于应用程序实例级路由处理(如果您正在使用)

router.get('*', function(req, res, next) {
  res.locals.newEmailCount = Emails.count({userId: userId, new: true})
  next();
})