
π― URL νλΌλ―Έν°μ 쿼리λ₯Ό νμ©νμ¬ Map κ°μ²΄λ‘ λμ λ°μ΄ν° κ΄λ¦¬λ₯Ό νμ΅ν©λλ€.
express μμ μ½λμμ req.params.nμ λ¬Έμμ΄λ‘ μΆλ ₯λ©λλ€.
const express = require('express');
const app = express();
app.get('/products/:n', function (req, res) {
console.log(req.params);
console.log(req.params.n);
res.json({
num: req.params.n,
});
});
app.listen(3000);

λ€μ μ½λλ₯Ό μ€νμμΌ°λλ κ°μκΈ° μ€λ₯κ° λ°μνμ΅λλ€. π¦
β οΈ λ°μν μ€λ₯
μ½λλ₯Ό μ€ννλ
Error: listen EADDRINUSE: address already in use :::3000λΌλ μ€λ₯κ° λ°μνμ΅λλ€. ν΄λΉ ν¬νΈ λ²νΈκ° μ΄λ―Έ μ¬μ© μ€μ΄κΈ° λλ¬Έμ μ¬μ©νμ§ λͺ» νλ€λ μλ―Έμμ΅λλ€.
π‘ ν΄κ²° κ³Όμ 1 ( Windows ν΄κ²° λ°©λ² )
1οΈβ£ ν¬νΈλλ²μ ν΄λΉνλ λ€νΈμν¬ μνλ₯Ό ννν΄λ¬λΌκ³ μμ²νκΈ°
netstat -ano | findstr :<ν¬νΈλλ²>2οΈβ£ ν΄λΉ ν¬νΈμμ μ¬μ© μ€μΈ νλ‘μΈμ€ κ°μ μ’ λ£νκΈ°
taskkill /PID <νλ‘μΈμ€ID> /F
| νλ‘ν μ½ | λ‘컬 μ£Όμ | μ격 μ£Όμ | μν | PID |
β μ΄λ₯Ό ν΅ν΄μ λ¬Έμ λ₯Ό ν΄κ²°νμμ΅λλ€.π
π‘ ν΄κ²° κ³Όμ 2
μμ²νλ ν¬νΈ λ²νΈλ₯Ό λ³κ²½ν΄μ μμ²νκΈ°
app.listen(1234);
req.params.nμ μ°μ° μ μ©req.param.nμ μ°μ°μμ λ£μ΄ μ€ννλ©΄ μ«μλ‘ κ°μ λ³νλ κ²μ νμΈν μ μμ΅λλ€.
const express = require('express');
const app = express();
app.get('/products/:n', function (req, res) {
let number = req.params.n - 10;
console.log(number);
res.json({
num: number,
});
});
app.listen(3000);

μλ νλ³ν (Type coercion)
λ°μ΄ν° νμ μμ λ€λ₯Έ λ°μ΄ν° νμ μΌλ‘ κ°μ μλμΌλ‘ λ³νλλ νμμ λ§ν©λλ€.const value1 = "5"; const value2 = 9; let sum = value1 + value2; console.log(sum); // 59 (string)
μ΄λ₯Ό λ°©μ§νκΈ° μνμ¬ parseInt() λ‘ λ¬Έμμ΄μ μ«μλ‘ λ°κΎΈμ΄ μ°μ°ν©λλ€.
const express = require('express');
const app = express();
app.get('/products/:n', function (req, res) {
let number = parseInt(req.params.n) - 10;
console.log(number);
if (number > 5) {
console.log('urlλ‘ μ λ¬λ°μ μ«μκ° 10λ³΄λ€ ν¬λ€μ.');
}
res.json({
num: number,
});
});
app.listen(3000);
μΆλ ₯ κ²°κ³Ό valueκ°λ μ«μλ‘ ννλ κ²μ λ³Ό μ μμ΅λλ€.

https://www.youtube.com/@15ya_egg )μΌλ‘ μ£Όμ λΆλ¬μ€κΈ°app.get('/:nickname', function (req, res) {
res.json({
channel: req.params.nickname,
});
});

https://www.youtube.com/watch?v=hO2HO3iAb9k&t=245s)λ‘ νλΌλ―Έν° λ°μ보기app.get('/watch', function (req, res) {
const q = req.query;
console.log(q);
res.json({ });
});

app.get('/watch', function (req, res) {
const { v, t } = req.query;
res.json({
video: v,
timeline: t,
});
});

κ°μ²΄μ λ°°μ΄μ ꡬ쑰 λΆν΄ ν λΉ(Destructuring assignment)
β κ°μ²΄μ λΉκ΅¬μ‘°ν
const { v, t } = req.query; //const v = req.query.v; //const t = req.query.t;β λ°°μ΄μ λΉκ΅¬μ‘°ν
const array = [1, 2, 3, 4, 5]; const [, num2, num3, , num5 ] = array; console.log(num2, num3, num5); // 2, 3, 5
Map κ°μ²΄λ₯Ό μ¬μ©νμ¬ νΉμ idμ ν΄λΉνλ μν μ 보λ₯Ό λ°ννλ APIλ₯Ό ꡬνν©λλ€.
const express = require('express');
const app = express();
app.listen(3000);
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) });
}
});
let db = new Map();
db.set(1, 'NoteBook');
db.set(2, 'Cup');
db.set(3, 'Chair');
console.log(db); // { 1 => 'NoteBook', 2 => 'Cup', 3=> 'Chair' }
req.params.idλ₯Ό κ°μ Έμ¬ λ idλ λ¬Έμμ΄μ΄κΈ° λλ¬Έμ parseInt()λ₯Ό μ¬μ©νμ¬ μ«μλ‘ λ³νν©λλ€. db.get(id)λ₯Ό μ΄μ©ν΄ ν΄λΉ idμ μνλͺ
μ μ‘°ννκ³ , JSON μλ΅μ 보λ
λλ€.Map κ°μ²΄μ μ μ₯λμ§ μμ κ°μ΄ μμ²λλ©΄, ifλ¬Έμ ν΅ν΄ 'μλ μνμ
λλ€'κ° μΆλ ₯λ©λλ€.
- ν€-κ°(
key-value) μμ μ μ₯νλ JavaScript λ΄μ₯ κ°μ²΄μ λλ€.Objectμ λ€λ₯΄κ² ν€μ νμ μ νμ΄ μμ΅λλ€..set()μΌλ‘ κ°μ μΆκ°ν©λλ€..get()μΌλ‘ κ°μ κ°μ Έμ΅λλ€..sizeλ‘ ν¬κΈ°λ₯Ό κ°μ Έμ΅λλ€.
π’kebab-case (λλ πsnake_case)
project-demoπͺcamelCase
getName()π§PascalCase
UserModelμ€μ μ νλΈ URLμ νμ©νλ©΄μ μλ νλ³ν λ± λ§μ΄ κ³ λ €ν΄μΌ ν μ μ μ΄ν΄ν μ μμμ΅λλ€.π