了解module.exports与callback

我有一种情况,我正在创build一个只有在asynchronous操作完成时才返回的节点模块。 一种方法(如下所示)是为module.exports分配一个带有callback参数的函数。 在函数内部,您将返回callback。

下面是我描述的一个例子,完成了callback:

// module called test.js module.exports = function(done) { // do something asynchronous here process.nextTick(function() { done(); // call done when the asynchronous thing is complete... } } 

我挂断电话的地方在于callback的确在执行,考虑到我没有把它定义在任何地方。

例如,在香草JavaScript中,我可以通过完成参数,然后在函数内调用它,只要我在调用中创buildcallback函数。

 function testAsyncCb(msg, done) { console.log(msg); setTimeout( function() { done(); }, 1000); console.log("last line in code"); } testAsyncCb("testing", function(){ console.log("done"); }); // invocation with callback function 

回到第一个节点的例子中,require()调用module.exports的地方正在为done()创build一个函数来解决这个问题? 如果不是,callback如何parsing?

很难find这个工作的信息。 任何帮助/方向表示赞赏。

module.exports想象成一个对象(module.exports = {})。 所以,无论你放置在物体上,任何人都可以看到模块。

例如,你有

  module.exports = function myFunc() {} 

那么就需要这个意思

 var abc = require('./my-module'); --> abc == myFunc 

如果你愿意的话

 module.export.myFunc = function () {} 

比要求会

 var abc = require('./my-module'); --> abc == {myFunc: function () {}} 

要求操作是同步的,而不是在requirejs中的asynchronous(意味着不是AMD,但更像commonjs)。

有关nodejs官方文档的更多信息,请参阅http://www.sitepoint.com/understanding-module-exports-exports-node-js/:https&#xFF1A://nodejs.org/api/modules.html