
npm install express로 현재 디렉토리에 express 패키지 설치 → 기존에는 --save를 입력했는데 지금은 default라 입력할 필요 X → -g 태그를 추가하면 global 하게 설치되어 컴퓨터 전역에서 사용 가능하지만 주로 local에 설치node <filename>.js 커맨드 입력하여 실행app.METHOD(PATH, HANDLER)
| GET |
|---|
| POST |
| PUT |
| DELETE |
const express = require("express");
// app 변수는 express 인스턴스
const app = express();
// METHOD로 HTTP Method 구분
app.get("/", (req, res) => {
res.send("Welcome :)");
});
app.post("/user", (req, res) => {
res.send("User successfully added . . .");
});
app.put("/article", (req, res) => {
res.send("Article successfully changed . . .");
});
app.put("/user", (req, res) => {
res.send("User successfully deleted . . .");
});
app.listen(8080, () => console.log("Server is listening to 8080 . . ."))
// JSON 데이터의 기본 구조
{
key: value
}
// 예시
{
id: 1
name: "Bill Gates",
height: 177,
assets: 108_000_000_000,
spouse: {
id: 2,
name: "Melinda French Gates",
height: 168,
assets: 11_100_000_000,
},
chilren: {
...
}
}
next(); -> 바로 다음 Middleware 함수 실행next(”route”); → Route가 있는 다음 Middleware 실행app.get("/my/path", (req, res, next) => {
console.log("🐓");
next();
});
app.use((req, res, next) => {
console.log("🥚");
next();
});
app.use((req, res, next) => {
console.log("🐣");
res.send("Finished . . .");
});
// 🐓 -> 🥚 -> 🐣Callback: 다른 code 덩어리에 파라미터로 전달되는 실행가능한 code 덩어리
Middleware: request와 response 사이에서 사용자 정의 작업 수행
const express = require("express");
const app = express();
const myFn = (req, res, next) => {
console.log("Middleware here ~");
next();
}
app.use(myFn);
app.get("/", (req, res, next) => {
res.send("Response from the server . . .");
});
app.use((err, req, res, next) => {
console.error(err);
res.status(500).send("Something is wrong . . .");
});
app.get("/", (req, res) => {
res.status(200);
res.send("Welcome :)");
});
app.use((req, res, next) => {
console.log("I'm Middleware");
next();
});
app.use((err, req, res, next) => {
console.error(err);
res.status(500).send("Something is wrong . . .");
});
app.use((req, res, next) => {
console.log("🤖 Middleware");
next();
});
// 여러 Error Handling Middleware 정의
app.use(logErrors);
app.use(clientErrorHandler);
app.use(errorHandler);
const logErrors = (err, req, res, next) => {
console.error(err.stack);
next(err);
}
const clientErrorHandler = (err, req, res, next) => {
if (req.xhr)
res.status(500).send({ error: 'Something failed!' });
else
next(err);
}
const errorHandler = (err, req, res, next) => {
res.status(500);
res.render('error', { error: err });
}
npm initnpm init -y로 간편하게 초기화 가능npm installnpm run <keyword>npm run start, npm run dev, npm run build, …npxcreate-react-app과 같이 변화가 잦은 Boilder Plate Module 사용 등에 도움됨nvmnvm lsnvm install <version>nvm alias default <version>NestJS
1. Module → 기능 별 코드 묶어서 유지, 관리, 보수 용이하게 함
2. Controller → Routing 담당 및 Service를 import 하여 Controller는 코드가 깔끔
3. Service → 비즈니스 로직 구현
No. npm도 계속 개선되어 yarn과 다운로드 속도가 비슷하고 보안적 취약성도 많이 개선됨. 그 외 yarn에 비해 npm이 가지는 여러 효율성이 있어 무조건적으로 yarn이 npm보다 우수하지는 X. 보안이 중요한 프로젝트인 경우 yarn 사용 권장됨.