簡體   English   中英

Node.js https請求在本地工作,但是在部署到heroku時拋出超時

[英]Node.js https request work locally but throws timeout when deployed to heroku

我有一個訪問第三方api的node.js應用程序。 當我在本地運行應用程序時,它可以正常工作,但是當我將其部署到heroku時,嘗試訪問api時會引發超時錯誤。

這是我的應用程序的代碼:

 var express = require("express"); var bodyParser = require("body-parser"); var https = require("https"); var querystring = require('querystring'); var cookieParser = require('cookie-parser') var app = express(); app.use(bodyParser.json()); app.use(cookieParser()); var options = { host: "200.201.170.21", port: 443, path: '/appFgtsTrabalhador/invoke', method: 'POST', rejectUnauthorized:false, headers: { 'Content-Type': 'application/x-www-form-urlencoded', } }; var req = https.request(options, function(response) { response.setEncoding('utf8'); response.on('data', function (chunk) { console.log('BODY: ' + chunk); }); response.on('error', function(err) { console.log('ERROR'); }); }); req.end(); 

這是heroku日志:

 2018-03-25T21:37:56.821829+00:00 app[web.1]: events.js:183 2018-03-25T21:37:56.821851+00:00 app[web.1]: throw er; // Unhandled 'error' event 2018-03-25T21:37:56.821853+00:00 app[web.1]: ^ 2018-03-25T21:37:56.821854+00:00 app[web.1]: 2018-03-25T21:37:56.821856+00:00 app[web.1]: Error: connect ETIMEDOUT 200.201.170.21:443 2018-03-25T21:37:56.821857+00:00 app[web.1]: at Object._errnoException (util.js:1022:11) 2018-03-25T21:37:56.821859+00:00 app[web.1]: at _exceptionWithHostPort (util.js:1044:20) 2018-03-25T21:37:56.821862+00:00 app[web.1]: at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14) 2018-03-25T21:37:56.830314+00:00 app[web.1]: npm ERR! code ELIFECYCLE 2018-03-25T21:37:56.830785+00:00 app[web.1]: npm ERR! errno 1 2018-03-25T21:37:56.836295+00:00 app[web.1]: npm ERR! xxxx@0.0.0 start: `node server.js` 2018-03-25T21:37:56.836500+00:00 app[web.1]: npm ERR! Exit status 1 2018-03-25T21:37:56.836785+00:00 app[web.1]: npm ERR! 2018-03-25T21:37:56.837005+00:00 app[web.1]: npm ERR! Failed at the xxxx0.0.0 start script. 2018-03-25T21:37:56.837209+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 2018-03-25T21:37:56.869686+00:00 app[web.1]: 2018-03-25T21:37:56.869958+00:00 app[web.1]: npm ERR! A complete log of this run can be found in: 2018-03-25T21:37:56.870133+00:00 app[web.1]: npm ERR! /app/.npm/_logs/2018-03-25T21_37_56_839Z-debug.log 

您收到超時錯誤Error: connect ETIMEDOUT 200.201.170.21:443 ,這表明主機未應答。

嘗試更新您的response.on error以記錄錯誤。 那應該給出更多的見解。

response.on('error', function(err) {
    console.log('ERROR', err);
});

您可能需要維護服務器的人的幫助才能將其打開到您的heroku實例。

要進行調試,您可以運行heroku run node ,這將在服務器上打開一個節點控制台。 然后,您可以將應用程序代碼復制/粘貼到其中。 這樣可以節省時間,而不是每次都部署。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM