728x90
반응형
질문 : Heroku + node.js 오류 (시작 60 초 이내에 웹 프로세스가 $ PORT에 바인딩하지 못함)
첫 번째 node.js 앱 (로컬에서 잘 실행 됨)이 있지만 heroku를 통해 배포 할 수 없습니다 (heroku도 처음 사용). 코드는 다음과 같습니다. 그래서 그렇게 많은 코드를 작성할 수 없으므로 네트워크 내에서 코드를 로컬로 실행해도 문제가 없다고 말할 것입니다.
var http = require('http');
var fs = require('fs');
var path = require('path');
http.createServer(function (request, response) {
console.log('request starting for ');
console.log(request);
var filePath = '.' + request.url;
if (filePath == './')
filePath = './index.html';
console.log(filePath);
var extname = path.extname(filePath);
var contentType = 'text/html';
switch (extname) {
case '.js':
contentType = 'text/javascript';
break;
case '.css':
contentType = 'text/css';
break;
}
path.exists(filePath, function(exists) {
if (exists) {
fs.readFile(filePath, function(error, content) {
if (error) {
response.writeHead(500);
response.end();
}
else {
response.writeHead(200, { 'Content-Type': contentType });
response.end(content, 'utf-8');
}
});
}
else {
response.writeHead(404);
response.end();
}
});
}).listen(5000);
console.log('Server running at http://127.0.0.1:5000/');
어떤 생각?
답변
Heroku는 앱에 동적으로 포트를 할당하므로 포트를 고정 번호로 설정할 수 없습니다. Heroku는 포트를 env에 추가하므로 거기에서 가져올 수 있습니다. 다음으로 듣기 전환 :
.listen(process.env.PORT || 5000)
이렇게하면 로컬에서 테스트 할 때 포트 5000을 계속 수신하지만 Heroku에서도 작동합니다.
여기 에서 Node.js의 Heroku 문서를 확인할 수 있습니다.
출처 : https://stackoverflow.com/questions/15693192/heroku-node-js-error-web-process-failed-to-bind-to-port-within-60-seconds-of
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
JavaScript 숫자 자릿수에 맟춰서 앞에 0 붙이기 (0) | 2021.11.03 |
---|---|
Node.js에서 파일을 복사하는 가장 빠른 방법 (0) | 2021.11.02 |
JS 날짜 개체에서 YYYYMMDD 형식의 문자열을 가져오는 방법 (0) | 2021.11.01 |
AngularJS 1.2 $ injector : modulerr (0) | 2021.11.01 |
node.js를 사용하여 JSON을 예쁘게 출력하는 방법 (0) | 2021.11.01 |