0

我下载了一个关于使用 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 时,下划线很重要吗?

4

1 回答 1

4

有一个特别命名的 requirejs 依赖项,称为“模块”,您可以使用它从 requirejs 内部查找其他信息。这通常用于传递额外的配置数据。从requirejs config api 文档

通常需要将配置信息传递给模块。该配置信息通常被称为应用程序的一部分,并且需要有一种方法将其传递给模块。在 RequireJS 中,这是通过 requirejs.config() 的配置选项完成的。然后,模块可以通过请求特殊依赖项“模块”并调用 module.config() 来读取该信息。

另请参阅wiki 中的Magic Modules

此模块为您提供有关当前模块的模块 ID 和位置的信息:

在该部分中,他有一个使用 module.uri 的示例,就像在您的原始代码片段中一样:

define(['module'], function(module){
    console.log(module.id);
    console.log(module.uri);
});
于 2013-06-12T15:48:43.277 回答