首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在服务器中全局使用monger连接?

如何在服务器中全局使用monger连接?
EN

Stack Overflow用户
提问于 2020-02-01 20:26:28
回答 1查看 75关注 0票数 0

我连接了一个mongodb数据库,如下所示:

代码语言:javascript
复制
(let [uri  (config-keys :mongoURI)
      {:keys [conn db]} (mg/connect-via-uri uri)])

在使用mongoose的Node.js中,可以执行mongoose.Promise = global.Promise,只连接到数据库一次,然后从全局名称空间中的任何文件使用它。我如何使用monger来做这件事,这样我就不必在使用数据库的每个文件中重复上面的代码,而是只与它连接一次?

EN

回答 1

Stack Overflow用户

发布于 2020-02-04 15:14:08

因此,您的问题可以概括为:如何在应用程序中管理全局状态。

有几个库可以帮助您做到这一点:

  1. component,它允许您创建全局状态的地图,并将其传递给需要them
  2. mount的函数,它允许您创建类似于全局variables
  3. integrant

的东西

您也可以不使用任何特定的库,使用中间件(假设您使用的是ring)来完成此操作:

代码语言:javascript
复制
(defn add-db-to-req [handler uri]
  (fn [req]
    (let [connection (mg/connect-via-uri uri)]
      (handler (assoc req :connection connection)))))

其下游的任何中间件都可以通过以下方式访问连接

代码语言:javascript
复制
(:connection req)

并将其传递给需要它的函数。

通常,您需要将connection传递给依赖于它的任何函数,而不是依赖于全局状态:

代码语言:javascript
复制
(defn fetch-from-database [{:keys [db conn] :as connection} whatever]
  ...)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60016867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档