Javascript 在Express app中发出请求的两种方式之间的差异
我想知道在Express应用程序中以两种不同方式提出请求的区别 首先是这样写的,这就是我参与的回购协议:Javascript 在Express app中发出请求的两种方式之间的差异,javascript,node.js,express,Javascript,Node.js,Express,我想知道在Express应用程序中以两种不同方式提出请求的区别 首先是这样写的,这就是我参与的回购协议: http.get(options, res => { res.on('data', data => { returnValue += data; }); res.on('end', () => { returnValue = JSON.parse(returnValue.toString());
http.get(options, res => {
res.on('data', data => {
returnValue += data;
});
res.on('end', () => {
returnValue = JSON.parse(returnValue.toString());
this.setAPIJson(returnValue);
});
});
第二个来自Node.js文档中显示的示例:
const req = https.request(options, (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
});
req.on('error', (e) => {
console.error(e);
});
req.end();
我只是好奇这两种方法之间有什么区别,是否只是风格上的区别,或者做一种或另一种方法有什么好处。它们都在做根本不同的事情 第一个片段收集每个数据块,并将其附加到
'data'
回调中的字符串。当收到所有数据时,将触发'end'
回调
第二个代码段打印每个块,并在请求对象上有一个侦听器,用于处理错误。不是响应对象。请注意
req
和res
之间的区别,我更多的意思是匿名函数中的all与将其声明为变量并引用constWell之间的区别,这两个函数都在做根本不同的事情。第一个片段收集每个数据块,并将其附加到'data'
回调中的字符串。接收到所有数据后,将触发“结束”回调。第二个代码段打印每个块,并在请求对象上有一个侦听器,用于处理错误。不是响应对象。请注意req
和res
之间的区别。如果您能够对其进行编辑,该注释将非常适合于答案。好吧,这不是风格上的区别,实际上这两者之间存在功能上的差异。我忽略了req vs res.end调用。那么,总是直接从您正在查看的文档中调用'req.end()'是一种好的做法吗。“在示例中,调用了req.end()。使用http.request()时,必须始终调用req.end()以表示请求的结束-即使没有数据写入请求正文。”