2017-01-20 8 views
0

Я пытаюсь передать запрос ответа на запрос, но не может, может ли кто-нибудь помочь мне, пожалуйста?Nodejs возвращают данные после получения запроса внутри запроса на отправку

var app = require('express')(); 
var http = require('http').Server(app); 
var bodyParser = require('body-parser'); 
var request = require('request'); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 

http.listen(9999, function() { 
    console.log('listening...'); 
}); 

app.post('/bot',function(req,res){ 
    var apiurl = 'https://apiURI' 
    request(apiurl, function(error,response,body){ 
    res.send(body) 
    }) 
} 

, когда я получаю апи ответ должен отправить клиенту, сделать запрос на почту с res.send

error: Can't set headers after they are sent. 
+1

Я предполагаю, что это действительно код, который вы не включили. Это чаще всего случается со мной, если я пытаюсь сделать 'res.send' дважды где-то по моему конвейеру промежуточного программного обеспечения. Это может быть так же просто, как когда-то после вызова запроса «res.send». –

+0

Да, у вас есть код, который я здесь не включаю, это изолированный код, который не работает, но перед этим нет другой инструкции res.send, я нашел ее в конце моего оригинала код, эта строка 'res.end()' давала мне ошибку, спасибо за ваше время @JeremyPridemore, привет! – nerdcoder

+0

Не быть упрямым, но проблема не в вашем указанном коде. Чтобы доказать это, я изменяю ваш apiurl на '' http: // google.com'' и фактически запускаю эту программу локально, и он отлично работает. Некоторое время, когда я ударил эту ошибку, у меня был 'res.send()' в 'if' -операторе и один за его пределами, без' refurn' в выражении if. Они оба побежали. В любом случае, мы пока не можем помочь, потому что фактическая проблема заключается не в коде, который вы опубликовали, из того, что я могу сказать. –

ответ

0

решена ошибка, удаление метода конечных() внешний запрос GET из-за это async запрос (моя ошибка)

var app = require('express')(); 
var http = require('http').Server(app); 
var bodyParser = require('body-parser'); 
var request = require('request'); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 

http.listen(9999, function() { 
    console.log('listening...'); 
}); 

app.post('/bot',function(req,res){ 
    var apiurl = 'https://newsapi.org/v1/articles?source=techcrunch&apiKey=72cc6a313e2b4fb3af09e4593ee06fbc' 
    request(apiurl, function(error,response,body){ 
    res.send(body) 
    }) 
    //res.end() 
}) 

 Смежные вопросы

  • Нет связанных вопросов^_^