TIL Programmers - express, Map
map Object
Key(Id) | Value (Productname) |
---|---|
1 | “Notebook”, 20000, |
2 | “Cup”, 7000 |
3 | “Chair”, 100000 |
4 | “Poster”, 20000 |
- 위의 표를 기반으로 새로운 Map 을 작성한다.
- Map 안의 Value로 Object 도 가능함을 알 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/** map-demo.js */
const db = new Map();
const generateProduct = (productName, price) => {
return {
productName,
price,
};
};
db.set(1, generateProduct("Notebook", 20000));
db.set(2, generateProduct("Cup", 7000));
db.set(3, generateProduct("Chiar", 100000));
db.set(4, generateProduct("Poster", 35000));
exports.db = db
Map 과 express 연동
- 위에서 작성한 map-demo를 모듈로써 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/** app.js */
const {db} = require("./map-demo");
const express = require("express");
const port = 3000;
// express 객체 사용 선언
const app = express();
app.get("/:id", (req, res) => {
let { id } = req.params;
id = +id;
if (db.get(id) === undefined) {
res.json({
message: "없는 메세지 입니다.",
});
} else {
const product = { ...db.get(id) };
product.id = id;
res.json(product);
}
});
app.listen(3000);
- localhost:3000/3 접속 결과
1
2
3
4
5
{
"productName": "Chair",
"price": 100000,
"id": 3
}
Express 구조 이해하기
Express - Node.js web application framework
express 생성기를 사용한 프로젝트 생성
1
2
$ npm i express-generator -g
$ express
express-generator
를 설치하면 터미널에서express
명령어로 프로젝트 구조를 자동으로 생성할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|-- ./app.js
|-- ./bin
| `-- ./bin/www
|-- ./package.json
|-- ./public
| |-- ./public/images
| |-- ./public/javascripts
| `-- ./public/stylesheets
| `-- ./public/stylesheets/style.css
|-- ./routes
| |-- ./routes/index.js
| `-- ./routes/users.js
`-- ./views
|-- ./views/error.jade
|-- ./views/index.jade
`-- ./views/layout.jade
tree -L 3 -f
명령어로 확인한 프로젝트 구조이다.- app.use 는 사용을 의미
- 구조 및 파일내의 코드들들 보면 알수 있는 것은, 라우팅 과 비즈니스 로직이 분리 되어있음을 알 수 있다.
- 정확한 구조 파악은 express 좀 더 익히고 나서!
JS의 함수
- JS 에서 함수는
일급객체
이다.- 값으로 전달이 가능하다는 것!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 함수 선언식
// 함수선언식은 '호이스팅' 에 의해 소스코드 내부 어느 위치에 있든 항상 최상단 선언된다.
function add1(x,y) {
return x+y;
}
// 함수 표현식
// 실행 흐름이 함수 표현식에 까지 와서야 함수를 사용할 수 있다.
const add2 = function(x,y) {
return x+y;
}
// 화살표 함수
const add3 = (x,y) => x+y;
- 화살표함수 또한 함수 표현식과 같이 실행흐름이 함수까지 오지 않는 한 사용이 불가능하다.
- function 과 arrow function 의 가장 중요한 차이점은
this
의 바인딩에 있다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.