javascript对象混淆

javascript对象混淆,javascript,node.js,express,Javascript,Node.js,Express,可能重复: 我有以下代码: 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) { .

可能重复:

我有以下代码:

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是同一个对象,对吗

但在函数(…)中,部分应用程序将作为参数传递,并且代码喜欢“to object‘module’add method‘exports’并执行2次”我想添加一些函数,这些函数希望在每个函数(…)中使用,但无法添加,因为我不了解在该构造中会发生什么。
谢谢

为什么要分配module.exports三次?在您的代码模块中,exports将首先等于调用express返回的值。然后module.exports将变为等于您的函数(而不是它返回的值),并将接受3个参数。然后module.exports将等于使用2个参数的最终函数(同样不是它返回的值)。因此,在代码结束时,module.exports将等于最终函数。所以我看不出前两个作业需要什么。App最后将等于module.exports,因为App始终指向module.exports。您是否希望将app作为参数传递给它并不重要,因为在将函数分配给module.exports之后,在上面的代码中,您实际上没有将app传递给函数的任何位置。您在这里所做的只是命名一个参数“app”

我认为您要么错过了这里的代码,要么被过去可能使用过的其他语言弄糊涂了

如果语言不清楚,请查找Douglas Crockford


我希望这能有所帮助。

这些都在一个文件中吗?一、 我也不明白为什么在同一个文件中分别定义了三次
module.exports
。如果这些陈述在单独的文件中,请在3个单独的文件中更清楚地指出。但是为什么它是主要的,一个文件还是三个文件呢?因为node.js模块是基于文件的,所以它有很大的不同。在
require
中引用文件时,它会运行指定文件中的代码,并返回该文件中
module.exports
的值。正如您所怀疑的,OP省略了代码。具体来说,OP已经发现每个
模块.exports
分配都在一个单独的文件中(请参阅OP对该问题的评论)。