javascript - 如何创建一个全局函数来访问 express.js 中的数据库

标签 javascript node.js express ejs

我使用 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/

相关文章:

javascript - meteor 添加包不复制文件

javascript - NodeJS Tic Tac Toe 多人游戏

node.js - 在 Heroku 上托管 Node.js 应用程序时键入错误

javascript - AngularJS - 表单数据

node.js - 如何使我的 Express 服务器中的 Google Cloud CDN 缓存失效?

node.js - 在 AngularJS 中过滤具有无限滚动的页面

javascript - Nodejs 变量打印在控制台上,但不打印在 View 上

javascript - 如何在jquery中访问id attr中的特殊字符

javascript - 如何在innerHTML中模仿markdown替换?

javascript - ThreeJS raycaster 关闭,相机和对象的坐标大于 1000000