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