【问题标题】:Listening to both GET and POST, node.js server同时监听 GET 和 POST,node.js 服务器
【发布时间】: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');});
    }
}

如您所见,我有两个听众 - dataend。当data 发出时,我将发送的内容添加到变量中,当end 发出时,我将此变量发送到另一个函数。这不适用于 GET 请求 - 一次发送所有数据并且不会发出 end

我必须能够处理这两种方法。另外,这是一个家庭作业,这就是我不能使用 http 模块的原因。

有什么建议吗?谢谢!

附:因为我是 node.jsJavaScript 的新手,所以欢迎任何一般的 cmets

【问题讨论】:

    标签: node.js http post get handler


    【解决方案1】:

    GET 动词不包含正文,这就是为什么永远不会触发“数据”事件的原因。所有代码示例仅对有主体的动词有效。

    当然,您正在学习,但首先您必须了解您想要做什么,然后再考虑实施。我的建议是您继续进行有关 nodejs 的培训。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 2015-12-13
      • 1970-01-01
      相关资源
      最近更新 更多