2016-07-06 118 views
1

我使用express.js,mongodb,ejs。在导航栏中,有一个电子邮件图标,将显示新电子邮件的数量。如何创建一个全局函数,它将访问express.js中的数据库

<%=newEmailCount%> 

然后,我需要将这个newEmailCount添加到每个路由。

Emails.count({userId: userId, new: true}) 

我的问题是在express.js,我怎么能添加一个全局函数,可以执行每个路由?

回答

2

如果你想获得每GET请求数,那么你可以用下面的办法

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

你需要确保其始终将其置于其它所有路由上面执行。

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

这也适用于应用程序实例级别的路由处理,如果这就是你正在使用的。

相关问题