我下载了有关使用nodejs和requirejs的示例。考虑一下此代码段代码。
define(['express', 'module', 'path'], function (express, module, path) {
var app = express.createServer();
app.configure(function() {
app.use(express.logger({ format: ':method :url :status' }));
var filename = module.uri;
app.use(express.static(path.dirname(filename) + '/static'));
});
return app;
});
模块“模块”在这里是什么?当我查看依赖文件时,“模块”不存在。
{
"name": "node-requirejs-example",
"version": "0.0.1",
"dependencies": {
"express": "2.5.0",
"requirejs": ">=1.0.0",
"socket.io": ">=0.8.7",
"underscore": ">=1.2.1"
}
}
当我要使用requirejs时,下划线重要吗?
最佳答案
有一个特别命名的requirejs依赖项,称为“模块”,可用于从requirejs内部查询其他信息。通常用于传递其他配置数据。从requirejs config api documentation:
通常需要将配置信息传递给模块。该配置信息通常被称为应用程序的一部分,并且需要一种将其传递给模块的方法。在RequireJS中,这是通过requirejs.config()的config选项完成的。然后,模块可以通过询问特殊的依赖关系“模块”并调用module.config()来读取该信息。
另请参见Wiki中的Magic Modules:
此模块为您提供有关模块ID和当前模块位置的信息:
在该部分中,他有一个使用module.uri的示例,如您的原始代码片段所示:
define(['module'], function(module){
console.log(module.id);
console.log(module.uri);
});