Router 추가하기
본문 바로가기

Backend/node.js

Router 추가하기

추가+

백엔드 정보를 뷰에 옮기는법

router.use((err, req, res, next) => {
    res.status(err.status || 500);
    res.render('error',{//error.ejs를 열고 errCode를 전달
        errCode: err.status
    })
});
//방법1: html에서 불러오기
<h1><%-errCode%></h1>

//방법2:자바스크립트에서 불러오기
<script>
    const errCode =<%-errCode%>;
    console.log(errCode)
</script>

 

-----

 

 

기존 프로젝트가 있다고 가정함

 

메인 index.js

...
router.use("/sample/", require("./router/sample.js"));
...

 

[router]

sample.js

const express = require('express')
const config = require('../config')

const mysql = require(`../MYSQL`)
const db = mysql.write();

const router = express.Router()

router.get('/', async function(req, res){
    res.render('sample',{ //[view] - sample.ejs
    })
})

//디비에서 가져오는 API(샘플)
router.get('/query', async (req, res)=>{
    let result = await db.query(`
    SELECT * FROM 테이블명 WHERE success=1 ORDER BY idx DESC
    `)
    res.json({result})
})

module.exports = router;

 

[views]

sample.ejs - 일반 html형식

html내 API 테스트

async function fetchSample(){
        let data = await fetch(`/sample/query`).then(e=>e.json());
        console.log(data)
}
fetchSample()

 

이제 로컬서버를 작동시키고

https://localhost:내포트번호/sample로 이동시 sample.ejs가 출력됨

https://localhost:내포트번호/sample/query 입력시 제이슨형식의 데이터가 출력됨

반응형