객체 Map 저장
let laptop = {
productName: "Laptop",
price: 2000000
}
db.set(1, laptop)
문자열과 같은 방식으로 map에 저장할 수 있다.
객체를 api 로 전달
app.get('/:id', function(req,res){
let {id} = req.params
id = parseInt(id)
if(db.get(id) == undefined){
res.json({
message : "없는 상품입니다."
})
}
else{
res.json({
id : id,
productName : db.get(id).productName,
price : db.get(id).price
})
}
})w
객체의 필드들을 꺼내서 id와 함께 전달하는 방식이다.
else{
let product = db.get(id)
product.id = id
res.json(product)
}
혹은 이런방식으로 객체를 하나 생성해서 그곳에 id 필드를 추가하고 그 객체를 보낼 수도 있다.
else{
let product = db.get(id)
product["id"] = id
res.json(product)
}
또는 이런 방식으로 필드추가도 가능하다.
그런데 이런방식으로 필드를 추가하게 되면 id가 맨 마지막 순서로 가게 된다. 이것이 문제가 될까?
결론부터 말하자면 전혀 문제가 되지 않는다. Map이라는 자료형은 key-value 쌍으로 데이터를 저장하지 index로 저장하지 않기 때문이다. 즉 순서는 중요하지 않다.
Express.js 의 구조
Express 는 generator를 이용해 골격을 생성해줄 수 있다. 프로젝트 폴더를 만들고
$ sudo npm install express-generator -g
명령어를 치면 전역적으로 제네레이터를 설치한다.
그 후 express 를 쳐보면
이와 같은 파일구조가 생성이 된다.
www.js
var app = require('../app');
var debug = require('debug')('express-base:server');
var http = require('http');
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
var server = http.createServer(app);
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
모듈들을 불러오고 http 서버설정을 해주는 파트가 있다. 이전에 직접 만들었던 코드와 대부분 일치하는 것을 알 수 있다.
app.js
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
여러 모듈들을 가져와서 사용할 수 있게 세팅해주는 코드들이다.
routes
index.js
처음 index 파일을 실행하려하면 오류가 나게 된다. 제네레이터는 설치되어있지만 필요한 모듈들은 설치가 안되어있기 때문인데
package.json에 있는 모든 dependencies를 설치하기 위해서는
npm install
라는 명령어를 치면 된다.
모듈들이 설치가 되었고 이제 실행을 하면 될것 같지만 여전히 exit 되면서 끝난다. app.js 에서 실행해도 마찬가지다.
Express 는 터미널에서 실행햐아한다.
npm start
터미널에 이 명령어를 치면 정상적으로 Express가 실행되게 된다.
자바스크립트 함수 종류
일반 함수
function add1(x,y){ return x+y }
가장 기본적인 형태의 함수이다.
변수에 담기
let add2 = function(x,y){ return x+y }
같은 형태이지만 변수에 담는 방식으로 사용할 수 있다.
화살표 함수1
const add3 = (x,y) => { return x+y }
function 대신 => 를 사용한 방식의 함수이다.
화살표 함수2
var add4 = (x,y) => x + y
return 문도 생략한 방식의 화살표 함수이다.
후기
Express의 구조와 map 활용, 자바스크립트의 함수의 종류에 대해 정리할 수 있었다. 특히 화삺표함수는 많이 보았던 형태인데 이번기회에 확실히 정리하고 넘어갈 수 있어서 좋았다.
키워드: 프로그래머스 데브코스, 국비지원교육, 코딩부트캠프
'프로그래머스 풀스택 데브코스 > 데브코스 TIL' 카테고리의 다른 글
웹 풀사이클 데브코스 TIL 18일차 (0) | 2023.12.12 |
---|---|
웹 풀사이클 데브코스 TIL 17일차 (0) | 2023.12.11 |
웹 풀사이클 데브코스 TIL 15일차 (2) | 2023.12.07 |
웹 풀사이클 데브코스 TIL 14일차 (1) | 2023.12.06 |
웹 풀사이클 데브코스 TIL 13일차 (0) | 2023.12.05 |