Javascript 在Express app中发出请求的两种方式之间的差异

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());

我想知道在Express应用程序中以两种不同方式提出请求的区别

首先是这样写的,这就是我参与的回购协议:

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()以表示请求的结束-即使没有数据写入请求正文。”