我下载了有关使用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);
});

09-30 16:12
查看更多