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