1

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

client.query(querystr, queryparams, function callback(err, results, fields){

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

}

底线大多数时候,一切都是直截了当和重复的,除了成功时发生的事情,这取决于查询和上下文。因此,我想将所有这些封装在一个函数中,并传入一个 querystr、queryparams 和一个成功函数。

问题:我不能这样做,因为这是在回调中,即使我通过回调参数传递它,我也不能让查询引擎使用我的成功函数。

所以我在想我可以在回调中做一个“要求”吗?如果是这样,“要求”模块中的函数是否会被添加到全局范围或回调范围中?我希望后者B

4

1 回答 1

2

您可以将变量分配给模块范围,这是“全局”的近似值,如下所示:

function a() { module.sys = require("sys"); }
function b(cb) { cb() };
b(a);
console.log(sys);
于 2011-06-15T12:09:20.017 回答