01. Node의 기본구조
node는 기본적으로 commonJs로 기동된다
기존에 import * as 123 from "" 이였다고 하면
이제는 require문을 사용한다고 생각하면 된다.
예시로는 아래와 같다.
const http = require("http")
const server = http.createServer((req,res)=>{
console.log(req.url,res.method)
res.write("aaaa")
res.end("asd")
})
server.listen(3065,()=>{
console.log("서버실행중")
})
여기서 createServer는 말그대로 서버를 만드는것 listen은 어느 포트에서 실행하는지를 알려주는 것이다.
기본적 코드
- res.end("asdasdasd") : 주로 서버가 작동을 안하거나 오류가 있을 경우, 특정 문구를 나타내고 응답을 종료하고자 할 때 사용된다.
- res.write : end와 같은데 여러개를 사용하고 싶다 라고 하면 사용하면 된다 단 마지막은 end로 마무리를 지어야한다.
02. Express의 시작
express를 사용하면 일단 위처럼은 사용을 안한다.
왜냐 express라는 강려크한 서버만들기 라이브러리가 있기 때문이다.
예시를 보여주겠다.
const express = require("express")
const app = express();
app.get("/",(req,res)=>{
res.send("hello express")
})
app.get("/api", (req, res) => {
res.send("hello pi")
})
app.listen(3065,()=>{
console.log("서버실행중")
})
이쪽에 보면 express를 require을 하고 app이라는 변수에 넣어준다.
직접적으로 바로쓰지는 못한다고 한다.
그리고 express가 서버를 그려 주기시작을 하고 여기서 중요한것 예시로는 get으로 해놨는데 이것은 브라우저가 서버에다가 이 주소에 어느걸 줘 라는 의미 라고 생각을 하면 된다.
페이지마다 다른데 예를 들어 "/" 라고 하면 / 즉 메인페이지 가 될것이고 /api다 라고 하면 /api페이지에 다가 해당하는 정보를 넘겨준다 .(정확하게는 백서버에 나타나는건데 내 알기 쉬우라고 페이지라 칭하겟다 ㅎㅎ )
03. 기본적 메소드
app.get : 가져오다.
app.post : 보내다.
app.delete : 삭제하다
app.patch : 전체수정
app.put : 부분수정
app.options : 찔러보기? 서버야 나 너한테 보낼수 잇....지?
app.head : 헤더만 가져오기
04. 라우터 분기
같은 api명에 메소드만 다르다면 어떨꺼 같나... 안되겠지?
근데 express.router()로 분기가 가능하다.
예를 들어 /post라는 애가 delete와 post가 같다면 다음과 같이 쓸수 잇겠다.
기존 app.js
const express = require("express")
const postRouter = require("./routes/post")
const app = express();
// 라우터 분기
app.use("/post",postRouter)
app.listen(3065,()=>{
console.log("서버실행중")
})
분기한 post.js
const express = require("express")
const router = express.Router();
// 게시글을 보냄
router.post("/", (req, res) => {
res.json({
id: 1,
content: "hi"
})
})
// 게시글을 삭제
router.delete("/", (req, res) => {
res.json({
id: 1,
content: "hi"
})
})
module.exports = router
여기에 보이는 router.post의 api는 전과 같이 /post 인데 get인거고 router.delete 는 /post 인데 delete가 되는거지.
'nodebird' 카테고리의 다른 글
블로그도 만들어 봅시다. (0) | 2024.01.16 |
---|---|
Mysql을 다뤄봅시다 (0) | 2024.01.03 |
next를 쉽게 깔아 봅시다... (1) | 2024.01.01 |
section 03 (1) | 2023.10.29 |
section 2 (0) | 2023.10.16 |