Note: Please read the edited portion of this post before answering, it might save you time and answers one of my questions.
我遇到的问题非常简单,但总体来说,我对这一点非常陌生,我在弄清楚如何在node/express应用程序中正确实现mongodb数据库连接时遇到了问题.
我用的是express 3.x和am根据Express:
我对写博客没有兴趣,但是应用程序的 struct 看起来很不错.路由是分开的,一切都井然有序.
我的问题是,我可能有5-6个不同的路由js文件,每个路由js文件可能有1到15条路由;在这些路由中,1或15可能想要访问数据库.
所以我的问题是,做db似乎是个非常糟糕的主意.打开(…)每次我想查询数据库.我应该提到的是,目前我使用的是原生mongo db驱动程序(npm install mongodb).
我还需要包括这样一个文件:
...在所有这些布线文件和我的所有模型文件中.然后我还要处理几十个打开的连接.
有没有一种方法可以让我的应用程序只建立一个连接,并且在会话期间保持打开状态(每次请求都创建一个新的连接也不好)?
如果是,我该怎么做?如果你知道答案,请使用tj的博客应用程序(本文前面链接的应用程序) struct 发布一个代码示例作为基本指南.基本上,路由和模型可以自由地使用db,而不是使用db open代码.
谢谢
EDIT
我在解决我的一个问题上取得了一些进展.如果你看tj的博客示例,他会在应用程序中初始化他的路由.就像这样:
require('./routes/site')(app);
require('./routes/post')(app);
在routes js文件中,它是这样开始的:
module.exports = function(app){
I stumbled on a project earlier today where I saw someone pass 2 variables in the modules.exports call -> function(app, db). Then figured wow could it be that easy, do I need to just adjust my routes to be (app, db) too? Yeah, it seems so.
现在问题的第一部分已经解决了.我不需要蒙哥.js文件和每个路由文件中的连接样板文件.同时,它足够灵活,我可以 Select 通过db引用的路由文件.这是标准的,没有缺点,对吧?
然而,问题的第二部分(不幸的是,重要的问题)仍然存在.
我怎样才能绕过必须做的db.打开(…)在每次查询中,理想情况下,每次会话只进行一次连接?