目前我正在通过在我的app.js和一个特殊的config / environment.js中执行以下操作来为node-mysql设置我的客户端连接:
@H_502_5@var client = MysqL.createClient({
user: 'USER',database: 'DATABASE',password: 'PASSWORD',host: 'HOST'
});
app.configure(function(){
...
app.set('client',client);
...
});
然后在我的客户端代码中,我只需调用app.settings.client即可使用MysqL客户端.
我不确定这是否是正确的方法,当我正在进行测试时它肯定不起作用,因为我需要一个正在运行的应用程序实例.
有什么建议?
最佳答案
我看到它有三种解决方案:
a)正如@Raynos在评论中建议的那样,使用app.set(key,value);设置db值,然后设置app.set(key)以获取该值.
b)将您的路由包装到一个接受数据库作为参数的函数中.
例:
sample_route.js
@H_502_5@module.exports = function (db) {
return function(req,res,next) {
// db is accessible here
}
}
app.js
@H_502_5@var = sample_route = require('./sample_route')(db);
app.get('/sample',sample_route);
c)创建一个可在任何地方访问的全局变量(不推荐):global.MY_DB = …;