추가+
백엔드 정보를 뷰에 옮기는법
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 입력시 제이슨형식의 데이터가 출력됨
반응형
'Backend > node.js' 카테고리의 다른 글
[nodejs] Uncaught SyntaxError: Unexpected token '<' (0) | 2023.02.15 |
---|---|
[nodejs] Fatal javascript OOM in GC during deserialization (0) | 2022.09.14 |
nodejs Router로 원하는 데이터 가공(get, post) (0) | 2022.06.09 |
Nodejs ejs 문서내 include, if 사용하는방법 초간단 (0) | 2022.06.08 |
Autoincrement : mongoose-sequence 몽구스 자동증가 (0) | 2022.04.05 |