Mar*_*yen 4 javascript node.js
我通过要求如下定义了http服务器:
var http = require('http');
function onRequest(request, response) {
console.log("Request" + request);
console.log("Reponse" + response);
}
http.createServer(onRequest).listen(8080);
Run Code Online (Sandbox Code Playgroud)
我想将http对象传递给JS类(在一个单独的文件中),我在其中加载特定于我的应用程序的外部模块.
有关如何做到这一点的任何建议?
谢谢,马克
Tee*_*nen 13
您不需要传递http对象,因为您可以在其他模块中再次要求它.Node.js将从缓存中返回相同的对象.
如果需要将对象实例传递给模块,一个有点危险的选择是将其定义为全局(没有var关键字).它将在其他模块中可见.
更安全的替代方案是定义这样的模块
// somelib.js
module.exports = function( arg ) {
return {
myfunc: function() { console.log(arg); }
}
};
Run Code Online (Sandbox Code Playgroud)
并像这样导入它
var arg = 'Hello'
var somelib = require('./somelib')( arg );
somelib.myfunc() // outputs 'Hello'.
Run Code Online (Sandbox Code Playgroud)
是的,看看如何制作模块:http://nodejs.org/docs/v0.4.12/api/modules.html
每个模块都有一个特殊的对象exports,当其他模块包含它时将被导出.
例如,假设您的示例代码被调用app.js,您添加该行exports.http = http并在同一文件夹中的另一个javascript文件中包含它var app = require("./app.js"),并且您可以访问http with app.http.
| 归档时间: |
|
| 查看次数: |
11013 次 |
| 最近记录: |