1. ejs를 사용할경우
index.js
const express = require("express");
const cors = require("cors");
const app = express();
app.set("view engine", "ejs");
require("dotenv").config();
const {port} = ensureEnv('PORT')
app.use(cors());
// app.use(cookieParser());
app.use(express.static("public"));
app.use(express.json({ limit: "50mb" }));
app.use(express.json());
app.use(express.urlencoded({ extended: false, limit: "50mb" }));
app.use(express.urlencoded({ extended: true }));
const router = express.Router();
// router.get("/", async function (req, res) {
// res.render("index", {});
// });
app.use("/", router);
router.use("/connect/", require("./router/connect.js"));
app.get("*", (req, res) => {//get요청에 대해 설정한 경로외의 모든경로 처리
return res.render("invalid", { message: "404" });//invalid.ejs(에러처리 페이지)로 넘어감
});
app.listen(port, () => {
console.log(`The Express server is listening at PORT: ${port}`);
});
module.exports = app;
public폴더를 생성하여 css, js등의 파일을 넣고
views파일과 connect.ejs파일을 생성하여 html형식의 코드를 짠다.
http://localhost:port/connect/ 으로 이동할경우 conenct.ejs의 파일이 실행되어 웹브라우저에 보인다.
에러페이지를 위하여 app.get('*',...) 코드를 추가하였다. 만약 message를 ejs에서 사용하고싶으면 아래 포스팅을 참고한다.
https://dubaiyu.tistory.com/314
package.json
{
"name": "proj",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "nodemon ./index.js",
...
},
"author": "",
"license": "ISC",
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^16.0.3",
"ejs": "^3.1.9",
"express": "^4.18.2",
"express-validator": "^7.0.1",
"nodemon": "^2.0.22",
"validator": "^13.7.0"
}
}
2. 프론트서버를 따로팔경우
반응형
'Backend > node.js' 카테고리의 다른 글
[nodejs] 미들웨어(Middleware) 사용법 (0) | 2023.08.01 |
---|---|
fetch 에러 SyntaxError: Unexpected end of JSON input (0) | 2023.07.06 |
[nodejs] Uncaught SyntaxError: Unexpected token '<' (0) | 2023.02.15 |
[nodejs] Fatal javascript OOM in GC during deserialization (0) | 2022.09.14 |
Router 추가하기 (0) | 2022.06.16 |