所以我开始学习NodeJS并创建一个简单的HTTP服务器,如Node Node Book中所述。我有一个Router
对象,其中包含路由table
,它将路径名映射到要调用的函数。这是通过键值对象实现的。
现在,我的Server
对象有一个router
成员,指向上面提到的对象。 (对于松耦合,保持路由器和服务器分离),以及启动服务器的start()
方法。如下所示:
Server.prototype.start = function() {
var myRouter = this.router;
http.createServer(function(req, res) {
var path = url.parse(req.url).pathname;
res.write(myRouter.route(path, null));
res.end();
}).listen(80);
};
现在我创建了一个myRouter
变量,该变量指向router
对象的Server
引用,然后在createServer
函数中,使用它执行路由&# 39; s route()
功能。这段代码有效。但是,如果我省略创建myRouter
变量部分并直接在createServer
中执行路由,请执行以下操作:
res.write(this.router.route(path, null));
它说this.router
未定义。我知道这与范围有关,因为提供给createServer
的函数会在收到请求后执行,但是,我无法理解创建myRouter
如何解决此问题。任何帮助将不胜感激。
答案 0 :(得分:1)
.account.home
答案 1 :(得分:1)