我下载了一个关于使用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时,那么下划线很重要吗?
答案 0 :(得分:4)
有一个名为“module”的特殊命名的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);
});