如何为事件'数据'分配回调函数并为其提供超过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)});
给我一个数据未定义的错误。
任何帮助将不胜感激 !
答案 0 :(得分:1)
'数据'事件将调用您的函数传递一大块数据。您需要接受 chunk 作为函数参数并将其传递给onReqData函数。
编辑:您还需要将相同的响应变量传递给onReqData。
function onRequest(request, response)
{
response.writeHead(200);
request.on('data', function(chunk){onReqData(chunk, response)});
request.on('end', onReqEnd);
}