Javascript Can';t nest HTTP使用node.js进入另一个

Javascript Can';t nest HTTP使用node.js进入另一个,javascript,node.js,http-get,Javascript,Node.js,Http Get,我想做一个非常简单的任务,但我被卡住了 场景如下: 对api发出get请求后,我想从某个外部站点发送http.get,然后将此外部站点的响应发送回原始api请求 显然,这些调用是异步的,因此在将字符串loremParagraph发送回api之前无法正确加载 我还收到错误:错误:发送邮件后无法设置邮件头。 这是我的密码: module.exports = function(app, express) { var myLoremRouter = express.Router(); var lor

我想做一个非常简单的任务,但我被卡住了

场景如下:

对api发出get请求后,我想从某个外部站点发送http.get,然后将此外部站点的响应发送回原始api请求

显然,这些调用是异步的,因此在将字符串loremParagraph发送回api之前无法正确加载

我还收到错误:错误:发送邮件后无法设置邮件头。

这是我的密码:

module.exports = function(app, express) {

var myLoremRouter = express.Router();

var loremParagraph = '';
//HTTP GET accessed at localhost:8081/mylorem
myLoremRouter.get('/', function(req, res) {

    // Fetch one paragpraphlorem ipsum text from http://www.faux-texte.com/text-random-1.htm
    http.get("http://www.faux-texte.com/text-random-1.html", function(resp) {
            resp.on('data', function(chunk) {
                // console.log('BODY: ' + chunk);
                var $ = cheerio.load(chunk);
                loremParagraph = $('div.Texte').text();
                console.log(loremParagraph);
                // console.log(resp.status);

            });

        })
        // If any error has occured, log error to console
        .on('error', function(e) {
            console.log("Got error: " + e.message);
        });

    //Finally send the result back to the api call
    res.json({ message: loremParagraph });
});

return myLoremRouter;

})

试试这个。在这里添加块,直到我们准备好使用完整的数据


您正在调用
res.json
两次。这就是你的错误所在。一旦响应被发送,您就不能修改它。是的,可能是重复的。就是这样!非常感谢,你解决了我的问题:)
myLoremRouter.get('/', function(req, res) {
    var body = '';
    http.get({
        host: 'www.faux-texte.com',
        port: 80,
        path: '/text-random-1.html'
    }, function(resp) {
        resp.on('data', function(chunk) {
            body += chunk;
        });
        resp.on('end', function(chunk) {
            var $ = cheerio.load(body);
            loremParagraph = $('div.Texte').text();
            res.json({ message: loremParagraph });
        });
    })
    .on('error', function(e) {
        // handle/send error
        res.send(/*...*/);
    });
});