【问题标题】:How to create a global function which will access DB in express.js如何创建一个将在 express.js 中访问数据库的全局函数
【发布时间】:2016-07-06 05:22:55
【问题描述】:

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

<%=newEmailCount%>

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

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

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

【问题讨论】:

    标签: javascript node.js express ejs


    【解决方案1】:

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

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

    您需要通过将其置于所有其他路由之上来确保始终执行此操作。

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

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

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      相关资源
      最近更新 更多