我知道这个需要声明的作用.
var express = require('express');
var app = express();
但有时我会在要求后看到两个括号.
var routes = require('./routes')(app);
问)这是什么意思,它是如何工作的?
Tim*_*per 27
这是一种模式,其中module.exports您需要的模块设置为一个函数.要求模块返回一个函数,并且require之后的括号用参数计算函数.
在上面的示例中,您的./routes/index.js文件将类似于以下内容:
module.exports = function(app) {
  app.get('/', function(req, res) {
  });
  // ...
};
这种模式通常用于将变量传递给模块,如上面的app变量所示.
Edw*_*rzo 10
好吧,require是Node.js提供的一个函数,它基本上为你加载一个模块,它返回你在你加载的模块中公开的内容.
如果您在给定模块中公开(通过使用module.exports)是一个函数,那么这就是需要返回的东西.例如.
//moduleX.js
module.exports = function(){
  return "Helo World";
}
然后,如果您需要它,您将获得一个功能
var f = require('./moduleX');
console.log(f()); //hello world
当然,您可以在需要时直接调用该函数.
var greet = require('./moduleX')();
console.log(greet);
| 归档时间: | 
 | 
| 查看次数: | 4945 次 | 
| 最近记录: |