Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발공부일지

NodeJS - express 사용하기 본문

NodeJS

NodeJS - express 사용하기

보람- 2023. 9. 12. 17:20

목차

1. express설치하기

2. nunjucks 설치하기

3. 필요한 라우터 만들기

4. 필요한 로직을 넣어주기


 

 

1. express설치하기

- 작업할 디렉토리(게시판) 터미널에서 작성하기

npm init
npm install express
const express = require("express");
const app = express();

app.get("/", (req, res) => {
  res.send("hello world!");
});

app.listen(3000, () => {
  console.log(`server start`);
});

- express 라이브러리를 설치하고 불러온다.

- 라우터를 하나 만들어서 127.0.0.1:3000 연결되는지 확인해본다.

 

 

 

 

2. nunjucks 설치하기

npm install nunjucks
const nunjucks = require("nunjucks");

app.set("views engine", "html");
nunjucks.configure("views", {
  express: app,
});

app.use(express.urlencoded({ extended: true }));

app.get("/", (req, res) => {
  //   res.send("hello world!");
  res.render("index.html");
});

- nunjucks를 설치하고 views 디렉토리에 index.html 파일을 만들어준다.

- nunjucks를 불러오고, body parse해줄 코드를 작성한다.

- 127.0.0.1:3000/ 일때 index.html이 뜨는지 확인해본다.

 

 

 

3. 필요한 라우터 만들기

app.get("/boards/list", (req, res) => {
  res.render("board/list.html");
});
app.get("/boards/write", (req, res) => {
  res.render("board/write.html");
});
app.get("/boards/view", (req, res) => {
  res.render("board/view.html");
});
app.post("/boards/write", (req, res) => {
  res.redirect("/board/view");
});

- 게시판에 필요한 list, write. view페이지의 라우터를 만들어준다.

- write에는 POST에 redirect로 작성한다.

 

 

 

4. 필요한 로직을 넣어주기

<body>
    <h2>글쓰기 페이지입니다.</h2>

    <form method="post" action="/boards/write">
      <input type="text" name="title" /><br />
      <input type="text" name="writer" /><br />
      <textarea name="content"></textarea><br />
      <button type="submit">글쓰기</button>
    </form>
</body>
<body>
    <h2>VIEW 페이지 입니다</h2>

    <ul>
      <li>제목 : {{title}}</li>
      <li>작성자 : {{writer}}</li>
      <li>내용 : {{content}}</li>
    </ul>
  </body>
const boards = [];

app.get("/boards/view", (req, res) => {
  const { id } = req.query;
  const row = boards[id];
  console.log(row);
  res.render("board/view.html", {
    title: row.title,
    writer: row.writer,
    content: row.content,
  });
});

app.post("/boards/write", (req, res) => {
  boards.push(req.body);
  const id = boards.length - 1;
  res.redirect(`/boards/view?id=${id}`);
});

 

 

 

 


※ 미들웨어

※ 정적 라우팅

※ 동적 라우팅

※ 템플릿 엔진