如何在node.js中访问整个应用程序中的db连接
How to acess db connection in whole app in node.js?
我连接mongodb与monk
在app.js
var express = require('express');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/nodetest1');
app.use(function(req,res,next){
req.db = db;
next();
});
这里工作得很好。现在我在routes文件夹
中添加index。jsvar monk = require('monk');
var db = monk('localhost:27017/nodetest1');
exports.index = function(req, res){
var collection = db.get('usercollection');
collection.find({},{},function(e,docs){
res.render('userlist', { "userlist" : docs});
});
res.render('index', { title: 'Express' })
};
它也工作得很好。但我在app.js和index.js连接DB。app。js中的连接定义可以在index。js
我知道的两个解决方案是:
将连接放到另一个文件中,导入该文件
db.js
var monk = require('monk');
module.exports = monk('localhost:27017/nodetest1');
其他文件:var db = require('./db.js');
或者传递相同的连接:
app.js:
var monk = require('monk');
var db = monk('localhost:27017/nodetest1');
var module = require('./myModule.js')(db);
myModule.js:
module.exports = (db) => {
//...
};
或:
app.js:
var monk = require('monk');
var db = monk('localhost:27017/nodetest1');
var module = require('./myModule.js');
module.init(db);
myModule.js:
var db;
exports.init = (masterDb) => {
db = masterDb;
};
使用前确保db
设置
创建一个单独的文件,如database.js
,并将代码放在其中:
module.exports = {
url : 'mongodb://localhost/productecom'
};
并在需要数据库连接时需要此文件:
类似于index.js:
var database = require('./database');
mongoose.connect(database.url);
我的例子有mongodb和不同的url,根据您的需要进行更改,因为我不知道monk
,也许您需要导出整个monk配置。
创建一个带有数据库连接的简单db.js文件,并在需要时要求连接,如下所示:
db.js
var monk = require('monk');
module.exports = monk('localhost:27017/nodetest1');
app.js
...
var db = require('./db.js');
app.use(function(req,res,next){
req.db = db;
next();
});
index.js
var db = require('./../db.js');
exports.index = function(req, res){
var collection = db.get('usercollection');
collection.find({},{},function(e,docs){
res.render('userlist', { "userlist" : docs});
});
res.render('index', { title: 'Express' })
};
感谢分享相同概念的@DrakaSAN。
相关文章:
- 在cordova android应用程序中连接数据库
- 将服务器托管的Web应用程序连接到本地Web套接字
- 如何通过子进程连接Java应用程序后在node.js中编写文件
- 通过SSL/TLS连接访问Vagrant上的Node.js应用程序
- 如何将我的Ionic应用程序与我的java服务器(Spring MVC)连接
- 猫鼬连接在 Express.js 应用程序中自动共享
- 如何将相同的MySQL连接用于我的整个Node.js应用程序
- 从我的web应用程序连接到本地sqlexpress数据库
- 正确连接主干.将Marinette布局视图连接到应用程序
- 将HTML5 PhoneGap应用程序连接到在线数据库
- Meteor测试/部署iOS应用程序以连接真实服务器(而非本地主机)
- android混合应用程序与数据库的离线连接
- 无法从我的 Angular2 应用程序中连接到我的 WebSocket
- 将我的整个应用程序连接成一个 HTML、JS 和 CSS 文件
- 将HTML5应用程序连接到服务器上的数据库*安全*
- 将jQuery移动应用程序连接到服务器数据库,并在互联网连接关闭时打开弹出窗口
- 是否有可能通过反向代理在我的应用程序连接谷歌地图API
- 将phonegap应用程序连接到服务器
- 检查Phonegap应用程序连接
- 问题:尝试使用客户端应用程序连接没有端口的Socket.io服务器