我正在编写一个http
服务器node.js
。该Server
对象有几个字段,应根据请求发送给客户端。这就是为什么我需要传递status()
给router.route()
- 所以它可以从内部调用(在解析请求之后)并返回更新变量值。问题是当status()
被调用时它不会打印字段值,而是对象文字。
构造函数Server
如下:
this.server = net.createServer(connectionHandler);
this.resourceMap = resourceMap;
this.rootFolder = rootFolder;
this.isStarted = false;
this.startedDate = undefined;
this.port = undefined;
this.numOfCurrentRequests = 0;
function status() {
return {
"isStarted" : this.isStarted,
"startedDate" : this.startedDate,
"port" : this.port,
"resourceMap" : this.resourceMap,
};
}
function connectionHandler(socket) {
console.log('server connected');
console.log('CONNECTED: ' + socket.remoteAddress +':'+ socket.remotePort);
socket.setEncoding('utf8');
socket.on('data',function(data) {
this.numOfCurrentRequests += 1;
router.route(status,data,socket,handle,resourceMap,rootFolder);
});
}
this.startServer = function(port) {
this.port = port;
this.isStarted = true;
this.startedDate = new Date().toString();
this.server.listen(port, function() {
console.log('Server bound');
});
}
}
当从内部调用状态时,router.route()
我得到
function status() {
return {
"isStarted" : this.isStarted,
"startedDate" : this.startedDate,
"port" : this.port,
"resourceMap" : this.resourceMap,
};
}
我理解它的方式函数是变量,因此按值传递。有什么办法可以解决我的问题吗?
谢谢