javascript对象混乱

时间:2013-01-17 14:09:24

标签: javascript node.js express

  

可能重复:
  What is the purpose of NodeJS module.exports and how do you use it?

我有以下代码:

var express = require('express');
var app = module.exports= express();
require('./config/environment.js')(app, express, __dirname);
require('./routes/default.js')(app, __dirname);


module.exports = function (app, express, dirname) {
....
};

module.exports = function (app, dirname) {
....
};

此代码中发生了什么。第二个字符串说,module.exports和app是同一个对象,对吗?

但是在函数(...)部分应用程序作为参数传递,该代码喜欢“对象'模块'添加方法'导出'并做2次”我想添加一些功能,想要在里面使用每个函数(...),但不能,因为不明白在该结构中发生了什么。 感谢

1 个答案:

答案 0 :(得分:1)

为什么要三次分配module.exports?在你的代码module.exports将首先变得等于通过调用express返回的内容。然后module.exports将变得等于你的函数(不是它返回的内容),并将采用3个参数。然后module.exports将等于你的最终函数(再次不是它返回的)取2个参数。因此,在代码模块结束时,.exports将等于最终函数。所以我看不出前两个作业需要什么。 App将在最后等于module.exports,因为app一直指向module.exports。您希望将app作为参数传递给它并不重要,因为在将函数分配给module.exports后,您没有在上面的代码中将app实际传递给函数。你在这里所做的只是命名一个参数“app”。

我认为您要么错过了这里的代码,要么对您过去使用的其他语言感到困惑。

如果您不清楚语言,请查看Douglas Crockford。

我希望有所帮助。