Server
middlewareλ?
thals0
2022. 9. 2. 18:00
728x90
π middlewareλ?
- (μ¬μ μ μλ―Έ) μλ‘ λ€λ₯Έ μ΄ν리μΌμ΄μ (νλ‘κ·Έλ¨)μ΄ μλ‘ ν΅μ μ νλλ° μ¬μ©λλ μννΈμ¨μ΄
- μ¦, μμͺ½ μ΄ν리μΌμ΄μ κ°μ΄λ°μμ μν μ νλ μννΈμ¨μ΄
- Express: 벑μλ μλΉμ€ ꡬμ±μ μν λ€μν μν©μ λ§λ μ¬λ¬κ°μ§ μλΉμ€λ₯Ό λ―Έλ€μ¨μ΄ ννλ‘ μ 곡
- Express μμμ λ―Έλ€μ¨μ΄λ μλ²μ λ€μ΄μ¨ μμ²μ΄ λ€μ΄μμ μλ΅μΌλ‘ λκ° λ κΉμ§ κ±°μΉλ λͺ¨λ ν¨μ λλ κΈ°λ₯μ μλ―Έ
- μμ² -> λ―Έλ€μ¨μ΄ -> μλ΅
β middleware μ¬μ©νκΈ°
- Express μμλ app.use λλ app.method ν¨μλ₯Ό μ΄μ©ν΄μ λ―Έλ€μ¨μ΄ μ¬μ©
- κΈ°μ‘΄μ ν¨μλ₯Ό μ μΈνμ¬ μ¬μ©νλ κ² μ²λΌ, μμ λ©μλλ₯Ό μ΄μ©ν΄μ req, res μ λν μ²λ¦¬
app.use(‘μμ² μ£Όμ‘, (req, res, next) => {});
π next
: callback ν¨μλ‘μ ν΄λΉ ν¨μκ° νΈμΆ λλ©΄ νμ¬ λ―Έλ€μ¨μ΄λ₯Ό μ’ λ£νκ³ λ€μ λ―Έλ€μ¨μ΄λ₯Ό μ€ν
- next λ₯Ό μμ©ν΄μ λ€μ λ―Έλ€ μ¨μ΄λ₯Ό μ€ν μν¬ λ, μ΄μ λ―Έλ€ μ¨μ΄μμ μ²λ¦¬ν κ°μ μ λ¬ νκ³ μΆμ λκ° λ°μ
- global μμμμ λ³μλ₯Ό νλ λ§λ€μ΄μ μ λ¬ν΄λ λμ§λ§ global λ³μλ λ³΄ν΅ μ¬μ©μ μ μνλ κ²μ΄ μ’μ
- λ³μκ° μΈμ μ΄λμμ λ³κ²½μ΄ λμ΄ λ¬Έμ λ₯Ό λ°μ μν¬μ§ μμΈ‘μ΄ μ΄λ ΅κΈ° λλ¬Έ
- μ΄λ΄ λμλ req κ°μ²΄μ νλλ₯Ό μΆκ°ν΄μ μ λ¬νλ λ°©λ²μ΄ λ§μ΄ μ¬μ©λ¨ (μλ μ½λ μ°Έκ³ )
const express = require('express');
const app = express();
const PORT = 4000;
app.use('/', (req, res, next) => {
console.log('Middleware 1');
req.reqTime = new Date();
next();
});
app.use((req, res, next) => {
console.log('Middleware 2');
res.send(`Requsted at ${req.reqTime}`);
});
app.listen(PORT, () => {
console.log(`The express server is running at port: ${PORT}`);
});
π Promise
fsλ₯Ό μ΄μ©νμ¬ promise μν© λ§λ€κΈ°
μ¬μ©μ΄ μ§κ΄μ μΈ Async / Await μ μ΄μ©ν΄μ ꡬν
const express = require('express');
const fs = require('fs');
const app = express();
const PORT = 4000;
app.use('/', async (req, res, next) => {
console.log('Middleware 1');
req.reqTime = new Date();
req.fileContent = await fs.promises.readFile('package.json', 'utf-8');
next();
});
app.use((req, res, next) => {
console.log('Middleware 2');
console.log(req.fileContent);
res.send(`Requsted at ${req.reqTime}`);
});
app.listen(PORT, () => {
console.log(`The express server is running at port: ${PORT}`);
});
728x90