我正在使用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和一个成功函数。
问题:我不能这样做,因为这是在一个回调中,我不能让查询引擎使用我的成功函数,即使我通过回调参数传递它。
所以我想我可以在回调中做一个“require”,如果是这样,“required”模块中的函数会被添加到全局作用域还是回调作用域?我希望后者B
答案 0 :(得分:2)
您可以将变量分配给模块范围,这是“全局”的近似值,如下所示:
function a() { module.sys = require("sys"); }
function b(cb) { cb() };
b(a);
console.log(sys);