Node.js,为事件'data'分配回调函数

时间:2015-03-22 19:10:05

标签: javascript node.js events callback server

如何为事件'数据'分配回调函数并为其提供超过1个标准参数? 这是我的剧本:

var http = require('http');
var server = http.createServer().listen(8080);

server.on('request', onRequest);
server.on('listening', onListening);

function onRequest(request, response)
{
    response.writeHead(200);
    request.on('data', function(){onReqData(data,res)});
    request.on('end', onReqEnd);
}

function onReqData(data, response)
{
    console.log('Request : ', data.toString());
    response.write('Write : ' + data.toString());
}

function listen()
{
    console.log('--- / Server runs on 8080 / --- ');
} 

function onReqEnd()
{
    console.log(' - - - / The end of request / - - - ');
}

我不喜欢回调函数体在.on()块中的语法。
所以当我尝试分配这样的回调时: request.on('data', onReqData);没有声明函数传入参数(function onReqData(){...}) 我有一个错误告诉我响应未定义

request.on('data', function(){onReqData(data,res)});

给我一​​个数据未定义的错误。

任何帮助将不胜感激 !

1 个答案:

答案 0 :(得分:1)

'数据'事件将调用您的函数传递一大块数据。您需要接受 chunk 作为函数参数并将其传递给onReqData函数。

编辑:您还需要将相同的响应变量传递给onReqData。

function onRequest(request, response)
{
    response.writeHead(200);
    request.on('data', function(chunk){onReqData(chunk, response)});
    request.on('end', onReqEnd);
}