Programming/Node.js

Node.js :: Express generator 로 프로젝트 생성 시 PM2 안 되는 오류

고고마코드 2022. 6. 3. 16:44
반응형

Node.js 에서 Express generator 로 프로젝트 기본 구조를 생성했을 경우 일반적으로 사용하는 PM2 사용법으로 서버가 실행되지 않을 수 있습니다.
저 역시 일반적으로 쓰던 것처럼 "PM2 start app.js" 를 했지만 실행이 되지 않았고, 해당 오류를 수정하는 과정을 기록합니다.


오류 & 오류 원인

> PM2 start app.js

Express generator 로 프로젝트 기본 구조를 생성하면 app.js 로 서버를 실행하게 되면 list 화면에는 [status=online] 이지만 도메인을 입력하면 오류가 발생합니다.

이유는 생성된 구조를 보면 /bin/www 가 있을텐데, 실제로는 이곳에서 포트번호 및 서버를 세팅하는 역할을 합니다. 즉, 우리가 기존에 하던 서버 세팅의 역할을 www가 하고 있고 app.js는 미들웨어로 사용되고 있습니다.


오류 해결

> PM2 start bin/www


서버도 정상적으로 실행되고, 도메인을 입력해도 정상적으로 화면이 출력되는 것을 볼 수 있습니다.

만약, 이렇게 해도 오류가 발생한다면 package.json 파일을 수정 후 다시 한 번 시도해 보세요.

"scripts": {
    "start": "node ./bin/www"
},

===== 아래로 변경 =====

"scripts": {
    "start": "pm2 start ./bin/www",
    "stop": "pm2 stop ./bin/www"
},

package.json 파일 내의 scripts 의 서버 시작과 중지 부분을 위의 코드와 같이 변경 후 다시 시도해 보세요.


참고자료

  1. gaemi606.tistory.com

반응형