Node.js 在请求中循环时出现错误[ERR\u HTTP\u HEADERS\u SENT]

Node.js 在请求中循环时出现错误[ERR\u HTTP\u HEADERS\u SENT],node.js,express,Node.js,Express,我正在构建一个web抓取api,用于从页面中获取所有工作链接。当我尝试使用res.send发送结果时,我不断收到“Error[ERR\u HTTP\u HEADERS\u SENT]:无法在发送到客户端后设置头”,这是所有工作链接的简单文本…我想我对res.send的工作方式做了一些错误 var express = require('express'); var app = express(); var request = require('request');

我正在构建一个web抓取api,用于从页面中获取所有工作链接。当我尝试使用res.send发送结果时,我不断收到“Error[ERR\u HTTP\u HEADERS\u SENT]:无法在发送到客户端后设置头”,这是所有工作链接的简单文本…我想我对res.send的工作方式做了一些错误

    var express = require('express');
    var app = express();
    var request = require('request');
    var cheerio = require('cheerio');
    var url = 'https://www.pardes-hanna-karkur.muni.il/';

    app.get('/webscrape', function (req, res,next) {
    
    request(url, function(error, response, body){

      if(!error && response.statusCode == 200){
            $ = cheerio.load(body);
          links = $('a'); //jquery get all hyperlinks
      $(links).each(function(i, link){
        var linkRecieved = $(link).attr('href');
        if (linkRecieved.indexOf('www') > -1){
          var outStr='';
          request(linkRecieved, function(error, response, body){
            if(!error && response.statusCode == 200){
              res.send(linkRecieved);
              next();
              
            } else {
              res.send('false');
              next();
            }
          });
          
        }
        
      });

      }
      
    });

    })

    var server = app.listen(8081, function () {
      var host = server.address().address
      var port = server.address().port
      
      console.log( port)
    })

发生这种情况的原因是,对于一个请求,您只能发送一次响应,在您的代码中,每次循环执行时,它都会尝试发送响应,不会出现错误,请尝试从外部循环发送响应

谢谢,我尝试在get请求开始时创建一个emapy数组-收集所有响应…并在get请求结束时发送它…但它没有返回任何结果