터미널 npm init -y
터미널 npm install --save-dev prettier
.prettierrc 파일 설정
.vscode폴더 -> settings.json 설정
eslint 설치 npm install --save-dev eslint
eslint airbnb룰을 모듈형태로 받을 수 있는 플러그인 설치 npm install --save-dev eslint-config-airbnb-base eslint-plugin-import
eslint 설정 -> .eslintrc.js 파일을 만들고
- Airbnb 모듈 추가 extends: ['airbnb-base],
- window 사용자라면 LF,CRLF 문제 해결을 위해 rules 추가! (아래 사진 참고)
tyscript 설치 npm install --save-dev typescript
types/node 설치 npm install --save-dev @types/node
.gitignore 파일: git 업로드 안하고 무시할 파일
node_moudles/
백 엔드에서 큰 데이터를 다룰 때 자주 사용하므로 간단하게 배우고 넘어갈게요!
병합, 구조 분해 할당 등에 다양하게 사용이 가능합니다.
말그대로 배열 또는 객체의 값을 하나하나 따로 분리해서 흩뿌리는 역할을 해줍니다.
원하는 변수 앞에 …
을 써주면 됩니다
전개구문: 객체합치기
array에 있는 대괄호가 사라지고 한 object로 합쳐진다.
전개구문: 배열합치기
전개구문: 나머지 연산자, 객체
전개구문: 나머지 연산자, 배열
전개구문: 매개변수
obj가 아니라 배열로 들어간다. 매개변수단위가 큰게 들어올 때 잘 사용한다.
__dirname
은 해당 파일의 위치 정보를 가지고 있습니다.__filename
은 해당 파일의 위치 + 파일명 정보를 가지고 있습니다.npm install express
npm install --save-dev @types/express
npm install --save-dev nodemon
App.use(‘요청 주소‘, (req, res, next) => {});
의 형태로 사용이 가능합니다!Req.Params
기존에 url 로 들어온 id를 따로 빼기 위해서 했던 노력을 기억 하시나요?
이렇게 req.url 에서 문자열을 처리하고 배열에 넣어서 구분하고 말 그대로 생쑈를 했었습니다!
이제는 별도로 처리할 필요 없이 아래와 같이 사용하면 됩니다!
받을 url에서 :파라미터명
을 미리 정의해 두면 해당 내용은 req.params 에 담겨서 전달이 됩니다!
여러개를 받을 수도 있다!
Req.params 라는 객체에 담겨서 전달이 되어서 편리하게 사용이 가능합니다!
여러 개를 받을 때, 어떤 값을 전달하는지 인지 시키기 위해서 이렇게 사용도 가능합니다.
&
로 묶어서 여러 개를 보낼 수 있습니다!Parameter 방식과 Query 방식으로 email, password, name, gender 정보를 받아와서 출력하는 백엔드 코드 작성하기!
Query 방식의 경우 특정 값이 안들어 왔을 경우 ‘Unexpected query’ 문구를 띄우는 예외 처리 해주기!
const express = require('express'); // express 프레임워크 불러오기
// const fs = require('fs');
const app = express();
const PORT = 4000;
app.get('/:email/:password/:name/:gender', (req, res) => {
console.log(req.params);
res.send(req.params);
});
app.get('/', (req, res) => {
const q = req.query;
if (q.email && q.pw && q.name && q.gender) { // 필드에 있는 값이 있으면
res.send(req.query);
} else {
res.send('Unexpected query');
}
});
app.listen(PORT, () => {
console.log(`The express server is running at ${PORT}.`);
});
노가다 Routing...
기존에는 req.method 를 이용해서 요청 방식(GET, POST, PUT, DELETE)를 구분을 했었습니다.
Express 에서는 app.메소드명();
의 형태로 요청 방식을 나누어 처리 할 수 있습니다!
// @ts-check
const express = require('express'); // express 프레임워크 불러오기
const userRouter = express.Router(); // express에서 제공하는 Router를 변수에 담기
const postsRouter = express.Router();
// const fs = require('fs');
const app = express();
const PORT = 4000;
app.use('/users', userRouter); // users에 대한 routing은 이 곳에서 되고
app.use('/posts', postsRouter);
// 그 뒤 경로에 대한 미들웨어는 아래 코드에서!
userRouter.get('/', (req, res) => {
// '/users' 뒤에 붙는 주소 값들을 써주면 된다.
res.send('회원 목록');
});
userRouter.post('/:name', (req, res) => {
res.send(`이름이 ${req.params.name}인 유저가 등록 되었습니다.`);
});
postsRouter.get('/', (req, res) => {
res.send('블로그 글목록');
});
postsRouter.post('/:title', (req, res) => {
res.send(`제목이 ${req.params.title}인 글이 등록 되었습니다.`);
});
app.listen(PORT, () => {
console.log(`The express server is running at ${PORT}.`);
});