【发布时间】:2012-02-04 11:58:12
【问题描述】:
目前,我正在为node-mysql 设置我的客户端连接,方法是在我的app.js 和一个特殊的config/environment.js 中执行以下操作:
var client = mysql.createClient({
user: 'USER',
database: 'DATABASE',
password: 'PASSWORD',
host: 'HOST'
});
app.configure(function(){
...
app.set('client', client);
...
});
然后在我的客户端代码中,我只需调用 app.settings.client 来使用 MySQL 客户端。
我不确定这是否是正确的方法,而且在我进行测试时它肯定不起作用,因为我需要一个正在运行的应用程序实例。
有什么建议吗?
【问题讨论】:
-
使用
app.set('client')而不是app.settings.client。它应该适用于测试,您只需在单元测试中注入一个空的app作为模拟的一部分 -
@Raynos 你如何注入一个空的
app? -
取决于您的代码。 I do something like this 但我认为您的架构完全不同。
-
@Raynos 我有一个open question,上面有关于如何处理 MySQL 模拟的赏金。如果你能刺伤,我会是一个快乐的人。
-
app.set(key, value);设置值app.set(key)获取值。值存在于app.settings.client中的事实是一个实现细节,可能会被更改。使用公开记录的 API 更安全