2013-06-12 138 views
0

我下載了一個關於使用nodejs和requirejs的例子。考慮這段代碼。node.js 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然後是下劃線重要?

+1

AFAIK,你不必列出一個vers每個模塊的離子依賴性。它只會檢查您的模塊文件夾中是否存在名爲「模塊」的模塊(不正確)。 – landons

回答

4

有一個名爲'module'的專門命名的requirejs依賴關係,您可以使用它查找來自requirejs內部的其他信息。這通常用於傳遞其他配置數據。從requirejs config api documentation

有一個共同的需要將配置信息傳遞給模塊。該配置信息通常被稱爲應用程序的一部分,並且需要有一種方法將其傳遞給模塊。在RequireJS中,這是通過requirejs.config()的配置選項完成的。然後模塊可以通過請求特定的依賴項「module」並調用module.config()來讀取該信息。

Magic Modules請參閱從維基:

該模塊提供了有關當前模塊的模塊ID和位置信息:

在這一節中,他有一個例子使用module.uri,就像在你的原代碼片段中一樣:

define(['module'], function(module){ 
    console.log(module.id); 
    console.log(module.uri); 
});