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