Node.js Express 라우트

이건선·2023년 1월 21일
0

Node.js

목록 보기
5/32

App.js

//App.js

const path = require('path');

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname,"public"))); // #3

const adminRoute = require('./routes/admin.js');
const shopRoute = require('./routes/shop.js');

app.use('/admin', adminRoute); // **#1**
app.use(shopRoute);

app.use((req,res,next)=> {
    res.status(404).sendFile(path.join(__dirname, "views","404.html"));

});


app.listen(4000);

🧐 #1 라우트 매칭 간소화

//admin.js

const path = require('path');

const rootDir = require('../util/path'); // #2

const express = require('express');

const router = express.Router();


**// /admin/add-product => GET**
  
router.get('/add-product', (req, res, next) => { 
    res.sendFile(path.join(rootDir, "views","add-product.html")); // #2
});


**// /admin/add-product => POST**
  
router.post('/add-product', (req, res, next) => {
    console.log(req.body);
    res.redirect('/');
});


module.exports = router;

/admin/add-product => /add-product
/admin/add-product => /add-product

🧐 2# 정적 페이지 내비게이션을 위한 헬퍼 함수

// /util/path.js

const path = require('path');

module.exports = path.dirname(process.mainModule.filename);

이 코드는 애플리케이션이 실행 될 수 있도록 해주는 파일의 경로를 알려줍니다.

🧐 3# static을 사용해서 css, js 파일 찾기

// 404.html

<html lang="en">
<head>
  
    ...
  
    <link rel="stylesheet" href="/css/main.css">
  
    ...

확장자를 살펴보고 css나 js 파일을 찾는 요청이라면, 자동으로 *public폴더로 포워딩 해준다. 여러 정적 폴더를 등록할 수도 있으며 요청은 원하는 파일을 찾을 때까지 모든 폴더를 통과한다.

profile
멋지게 기록하자

0개의 댓글