INTRO
지난 포스팅에서 node.js 프로젝트를 생성하였다.
이번 포스팅은 이 Default로 생성된 프로젝트를 다듬어 볼 것이다.
node.js 로 RestAPI만들기 연습 시리즈
1편 :
1. 디렉터리 구조 변경 |
--> 디렉터리 구조를 바꾸는 이유는
1. 불필요한 디렉터리 제거
2. 직관적인 디렉터리 구조
때문이다.
--> bin 폴더를 삭제한다.
--> view 폴터를 삭제한다.
--> src 폴더를 생성한다.
--> src 폴더 내 routes 폴더를 넣어준다.
--> src 폴더 내 app.js를 넣어준다.
--> src 폴더 내 server.js파일을 생성한다.
2. server.js , app.js 파일 수정 및 env 의존성 추가. |
--> server.js에 아래와 같이 작성한다.
require('dotenv').config();
process.on('uncaughtException', (err) => {
console.log('UNCAUGHT EXCEPTION!!! shutting down...');
console.log(err.name, err.message);
console.log(err);
process.exit(1);
});
const app = require('./app');
// Start the server
const port = process.env.PORT;
const server = app.listen(port, () => {
console.log(`Application is running on port ${port}`);
});
process.on('unhandledRejection', (err) => {
console.log('UNHANDLED REJECTION!!! shutting down ...');
console.log(err.name, err.message);
server.close(() => {
process.exit(1);
});
});
--> app.js파일을 아래와 같이 수정한다.
var express = require('express');
var routes = require('routes');
var app = express();
app.use('/', routes);
module.exports = app;
--> dotenv 의존성을 추가해준다.
추가하는 이유는 .env파일을 통해 환경변수(포트, DB 정보)들을 저장해놓고
gitignore 목록에 추가하여,
협업 시 로컬 환경 변수들이 commit 되지 않게 분리하기 위함이다.
--> .env 파일을 생성하고, 아래와 같이 적어준다.
--> 이후 다른 js파일에서 아래와 같이 dotenv를 추가해주면,
--> 이 변수를 사용할 수 있다.
require('dotenv').config();
3. 진입점 수정 |
--> 최초 node.js를 설치하면 진입점은 bin/www 파일이다.
--> 이 진입점은 package.json 파일에 선언되어 있다.
--> 우리는 이걸 삭제했으므로, 다른 진입점을 만들어줘야한다.
--> 진입점은 server.js가 될 것이다.
--> 우선 아래와 같이 package.json파일을 바꿔준다.
--> cross-env 는 환경 변수를 사용하겠다는 뜻이고,
--> NODE_PATH는 node 서버 진입점이 위치한 폴더를 지정한다.
--> 이후 node 명령어로 서버를 시작한다는 뜻이다.
4. route수정 |
--> 3번까지 모두 하고 npm start로 서버를 실행한 뒤.
--> localhost:8080으로 접근하면 아래와 같은 에러를 볼 수 있다.
-->이 에러는 app.js에 있던 html render 관련 설정들을 우리가 지웠기 때문에.
--> Routes/index.js파일의 res.render('index',{title:'Express'});
--> 부분을 실행할 수 없기 때문이다.
--> 이 부분을 아래와 같이 바꿔준다.
--> 이후 다시 실행해본다.
--> 오류 없이 뜨는 것을 확인할 수 있다.
5. nodemon 추가 |
--> nodemon이란, Spring boot의 devtools같은 역할을 한다.
--> 소스코드 수정이 발생한 경우, 서버 stop -> start 과정을 해야하는데,
--> 소스코드 수정 후 저장하는 시점에서 이걸 자동화 해준다.
--> 아래 명령어를 통해 의존성을 추가하자.
npm i nodemon
--> 이후 서버를 실행할 때, node명령어가 아닌 nodemon명령어로 실행해야 한다.
--> package.json 파일을 수정한다.
--> 이후 서버를 실행하면 터미널에 아래와 같이 출력된다.
마무리
-퍼가실 때는 출처를 꼭 같이 적어서 올려주세요!
'Dev > [Node.js]' 카테고리의 다른 글
[node.js - npm] dotenv - [환경변수 설정] (0) | 2021.06.08 |
---|---|
[node.js] RestAPI서버 만들어보기(연습) - 1 (0) | 2021.04.22 |