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
Nodejs ejs 문서내 include, if 사용하는방법 초간단
1. include 중복코드를 어떻게할까하다가 ejs include를 사용하기로하였다. 생각보다 엄청 간단한데 그냥 따로 ejs로 분리한다음에 원하는 ejs안에 include(경로)하면된다. 형식은 다음과 같다. 2. if문, for
dubaiyu.tistory.com
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 |