CentOS7에서 Nodejs 설치와 Heroku 연동
이번에 입사하게된 회사에서 NodeJS를 기반으로 개발을 하고 있다.
개인 PC에서 테스트 하기도 하고 해당 결과물을 개인 서버에 올리는 것으로 heroku가 유명하다고 들어서 한번 테스트 해보았다.
먼저 CentOS7이 설치가 되어있다는 상황에서 node.js를 설치 해야 한다.
node.js를 설치 하는 방법 중 nvm(Node Version Manager)을 이용한 설치를 진행한다. nvm을 이용할 경우 노드의 버젼을 쉽게 변경 할 수 있기 때문에 추천 한다.
#nvm 설치
$> curl https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash
$> source ~/.bashrc
#node.js 10.13.0 설치
$> nvm install 10.13.0
$> node -v
v10.13.0
$> npm -v
6.4.1
이후 Heroku 와 연동을 위하여 git과 heroku cli를 설치 한다.
#git 설치
$> yum install git
#heroku cli 설치
$> npm install -g heroku
heroku에 올릴 단순한 express 소스 작업을 한다.
$> mkdir hello
$> cd hello
$> npm init # 엔터로 설정 스킵
$> npm install -save express
$> vi index.js
####
const express = require("express");
const PORT = process.env.PORT
const app = express();
app.get("/", (req, res) => {
res.send({ hello: "world" });
});
app.listen(PORT);
####
heroku에 올리기 위한 설정 작업 진행
$> vi package.json
###
{
"name": "hello",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js" # 추가
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.16.4"
},
"engines":{ # 추가
"node": "10.13.0",
"npm": "6.4.1"
} # 추가
}
###
$> vi .gitignore
###
node_modules
###
heroku에 올리는 작업 진행
$> git init
$> heroku login -i # 중요!! -i 옵션이 없으면 오류남
$> heroku create
$> git add .
$> git commit -m "hello test"
$> git push heroku master
$> heroku open # url을 복사하여 브라우져에 복사
heroku login 오류
그냥 heroku login을 진행하면 아래와 같이 오류가 난다. 그럴 경우 -i 옵션을 이용하면 된다.
$> heroku login ## -i 옵션을 줘어야 로그인이 진행됨
heroku: Press any key to open up the browser to login or q to exit:
$> heroku login -i
heroku: Enter your login credentials
Email:
이제 기본 셋팅이 되었으니 node.js로 테스트를 해보자!!
node.js 기본 버젼 설정
nvm 으로 node.js를 설치하고 터미널을 종료 후 다시 들어오면 노드가 설치 되지 않은 것 처럼 동작한다.
$> node
-bash: node: command not found
$> npm
-bash: npm: command not found
nvm ls 명령으로 확인해 보면, 다음과 같이 설정 된 것을 확인 가능하다.
$> nvm ls
v10.13.0
node -> stable (-> N/A) (default)
unstable -> 10.13 (-> v10.13.0) (default)
iojs -> iojs- (-> N/A) (default)
기본 버젼 지정은 다음과 같이 하면 이후 터미널 접속시 문제 없이 해당 버젼을 사용 한다.
$> nvm alias default 10.13.0
default -> 10.13.0 (-> v10.13.0)
$> nvm ls
-> v10.13.0
default -> 10.13.0 (-> v10.13.0)
node -> stable (-> N/A) (default)
unstable -> 10.13 (-> v10.13.0) (default)
iojs -> iojs- (-> N/A) (default)