我在我的节点应用程序中使用express 3,并且我将我的路由分成了单独的文件...
app.use('/', routes);
app.use('/users', users);
Run Code Online (Sandbox Code Playgroud)
问题是我需要在许多这些路由中建立数据库连接.我应该连接到每个路径文件中的数据库,还是可以连接到我的主应用程序文件,并以某种方式将连接传递给包含?
我使用快速生成器来创建一个骨架应用程序.在app.js中,路由包括这样......
app.use('/', routes);
app.use('/users', users);
Run Code Online (Sandbox Code Playgroud)
在这些文件中,有如下路线......
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.render('index');
});
Run Code Online (Sandbox Code Playgroud)
Ale*_*kka 19
我只是在应用程序中保持数据库连接:
app.set('db',new MyDAO(config)); < - 用于定义路线的位置.
然后,在路线内,get()或post()我只是做
req.app.get('db').usercollection.find()
这样,您就可以将数据库连接池连接到gloabl应用程序上下文.
另一种常见方法是扩展req每个请求,但每次都执行:
app.use(function(req,res,next){
req.db = db; //this db comes from app.js context where you define it
next();
});
Run Code Online (Sandbox Code Playgroud)