了解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:://nodejs.org/api/modules.html