Javascript node.js`response.end`event是否发送可选的`data`和`encoding`参数?
文档定义了Javascript node.js`response.end`event是否发送可选的`data`和`encoding`参数?,javascript,node.js,event-handling,Javascript,Node.js,Event Handling,文档定义了response.end([data][,encoding][,callback]),并说明: 如果指定了数据,则相当于调用response.write(数据, 编码),然后是response.end(回调) 我是否正确使用了end事件,或者任何人都不太可能将数据传递到end事件中 var http = require('http'); http.get( process.argv[2], function (response) { response.
response.end([data][,encoding][,callback])
,并说明:
如果指定了数据,则相当于调用response.write(数据,
编码),然后是response.end(回调)
我是否正确使用了end
事件,或者任何人都不太可能将数据传递到end
事件中
var http = require('http');
http.get(
process.argv[2],
function (response) {
response.setEncoding('utf8');
response.on('error', console.error);
response.on('data', console.log);
// Check for data and exit on 'end' event
response.on(
'end',
function (data, encoding) {
if ( null != data ) {
console.log(data.toString(encoding));
}
return;
}
);
}
);
response.on('end'…)
表示响应中没有更多数据
如文档中所述,数据
分块发送。这是一个可读的流,on('end')
允许您传入自己的数据,您可以在其中包含简单的文本,这就是编写的方式:
这些文档基本上解释了这两种方法
例如:
response.write('Hello World\n');
response.end();
OR
response.end('Hello World\n');
一般来说,这对于少量数据来说是好的,但是数据的分块是在response.on('data')中处理的
可以将数据放入数组中,然后将该数组传递到response.on('end'…)
,这是我建议对较大的分块数据执行此操作的方式。一个很好的练习可能是将数据记录在回调中,以查看它是否通过
编辑:
对于您在评论中提出的问题:
您的代码是正确的,并且是可选的,这样考虑,您向该函数发送一些东西,一个请求,它执行一个响应,该响应如果它的大部分被分成块,您可以在(数据)中获取这些块,您可以在最后使用on(end)
将其发送回来,就这么简单
希望这会有所帮助。您是否能够看到最后的数据?在我的特定实例中,它是
未定义的
,如果它没有被传递的话。我期待这是因为它是可选的。谢谢你这么快的响应,但我仍然不知道我上面展示的代码是正确的还是必要的?它是正确的,可选的,这样想,你向那个函数发送一些东西,一个请求,它做一个响应,这个响应如果它的大部分被分成块,你可以在(数据)中获取这些数据块,你可以在最后使用on(end)将其发送回来,就这么简单,我会在你更详细的回答之前检查你是否将其移动到你的答案。