如果我可以在node-mysql的callback中做一个“require”,那么模块函数会被添加到callback作用域还是全局作用域?

我正在使用nodejs和node-mysql驱动程序。 我发现自己正在做重复的锅炉板,如

client.query(querystr,queryparams,函数callback(错误,结果,字段){

if (err){ do err related stuff } else { do success related stuff } 

}

在大多数情况下,一切都是直截了当的,重复的,除了在成功上发生的事情,这取决于查询和上下文的变化。 所以我想封装所有这一切在一个单一的function,并通过querystr,queryparams和成功function。

问题:我不能这样做,因为这是在callback中,我不能让查询引擎使用我的成功函数,即使我通过callbackparameter passing它。

所以我想我可以在callback中做一个“要求”,如果是的话,将“必需”模块的function添加到全局范围或callback范围? 我希望后者B.

您可以将variables分配给模块范围,这是一个近似于“全局”的情况:

 function a() { module.sys = require("sys"); } function b(cb) { cb() }; b(a); console.log(sys);