如何创build一个全局函数来访问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文件。
这也适用于应用程序实例级别的路由处理,如果这就是你正在使用的。
- NodeJS / Express:访问res.locals时出现并发问题
- Node Express中的403错误
- Node.js Express 3不提供socket.io.js
- express / node.js – 如何将路由parameter passing给其他文件?
- 在使用passport-saml进行身份validation之后,如何redirect到最初请求的url?
- oauthcallback后护照会话消失
- 每个asynchronous里面的nodejsasynchronous并行
- 节点/expression强制浏览器下载具有自定义名称的文件
- 如果node.js编译时没有使用openssl,可以在node.js上使用Socket.io吗?