【发布时间】:2012-12-09 17:43:26
【问题描述】:
这是我使用this 教程构建的基本http 服务器。
我在这里只展示一个创建服务器的函数:
function Server(resourceMap, rootFolder) {
this.resourceMap = resourceMap;
this.rootFolder = rootFolder;
function connectionHandler(socket) {
var data = "";
console.log('server connected');
console.log('CONNECTED: ' + socket.remoteAddress +':'+ socket.remotePort);
socket.setEncoding('utf8');
socket.on('data',function(newData) {
console.log("NEW DATA\n" + newData); data += newData;
});
socket.on('end',function(data) {
console.log("DATA\n" + data); router.route(data,socket,handle,resourceMap,rootFolder);
});
}
this.server = net.createServer(connectionHandler);
this.port = undefined;
this.startServer = function(port) {
this.port = port;
this.server.listen(port, function() {
console.log('server bound');});
}
}
如您所见,我有两个听众 - data 和 end。当data 发出时,我将发送的内容添加到变量中,当end 发出时,我将此变量发送到另一个函数。这不适用于 GET 请求 - 一次发送所有数据并且不会发出 end。
我必须能够处理这两种方法。另外,这是一个家庭作业,这就是我不能使用 http 模块的原因。
有什么建议吗?谢谢!
附:因为我是 node.js 和 JavaScript 的新手,所以欢迎任何一般的 cmets
【问题讨论】:
标签: node.js http post get handler