Node.js
(Node.js) Server 기본 연결 설정
JJeongHyun
2023. 1. 17. 15:36
반응형
Server 기본 설정 전체코드
const express = require("express");
const session = require("express-session");
const morgan = require("morgan");
const dotenv = require("dotenv");
const path = require("path");
const cookieParser = require("cookie-parser");
dotenv.config();
const app = express();
app.set("port", process.env.PORT || 8080);
app.use((req, res, next) => {
if (process.env.NODE_ENV === "production") morgan("combined")(req, res, next)
else morgan("dev")(req, res, next);
});
app.use("/", express.static(path.join(__dirname, "public")));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(
session({
resave: false,
saveUninitialized: false,
secret: process.env.COOKIE_SECRET,
cookie: {
httpOnly: true,
secure: false,
},
name: "session-cookie",
})
);
app.listen(app.get("port"), () => {
console.log("Server Opened");
});
필요 라이브러리들
const express =require("express"); // 서버 생성을 위한 라이브러리
const session = require("express-session"); // 서버 세션을 위한 라이브러리
const morgan = require("morgan"); // 로그를 위한 라이브러리
const dotenv = require("dotenv"); // 환경설정 관련 라이브러리
const path = require("path"); // 경로 관련 내장 라이브러리
const cookieParser = require("cookie-parser"); // 쿠키를 위한 라이브러리
서버 설정 하기 위한 setting
dotenv.config(); // 환경 설정 파일 로드
const app = express(); // 서버 생성
app.set("port", process.env_PORT || 8080); // 서버 내의 포트번호 초기화
미들웨어 설정
app.use((req, res, next) => { // 서버에 접근하면 실행, 배포용모드, 개발용모드 중 하나를 사용할 수 있다
if (process.env.NODE_ENV === "production") morgan("combined")(req, res, next)
else morgan("dev")(req, res, next);
});
app.use("/", express.static(path.join(__dirname, "public"))); // 서버의 root에 연결할 폴더를 설정하는 미들웨어
app.use(express.json()); // 데이터 주고 바들 때 json 형식
app.use(express.urlencoded({ extended: false })); // queryString을 파싱할 때 사용한 방법 설정, 모듈을 사용하지 않는다.
app.use(cookieParser(process.env.COOKIE_SECRET)); // 쿠키파싱
app.use(
session({ // 세션설정
resave: false, // 요청마다 세션을 재설정 여부
saveUninitialized: false, // 요청에 대해 세션에 작업 여부
secret: process.env.COOKIE_SECRET, // 암호화
cookie: { // 쿠키 설정 여부
httpOnly: true, // http에서만 사용
secure: false, // https에서도 사용할지 말지 여부 확인
},
name: "session-cookie", // 쿠키 이름
})
);
Server Open
app.listen(app.get("port"), () => {
console.log("Server Opened");
});
ES6 Server Setting
import express from "express";
import session from "express-session";
import dotenv from "dotenv";
import morgan from "morgan";
import cookieParser from "cookie-parser";
import path, { dirname } from "path";
import { fileURLToPath } from "url";
dotenv.config();
const app = express();
app.set("port", process.env.PORT || 8080);
app.use((req, res, next) => {
if (process.env.NODE_ENV === "production") morgan("combined")(req, res, next);
else morgan("dev")(req, res, next);
});
const __dirname = path.dirname(fileURLToPath(import.meta.url));
app.use("/", express.static(path.join(__dirname, "web")));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(
session({
resave: false,
saveUninitialized: false,
secret: process.env.COOKIE_SECRET,
cookie: {
httpOnly: true,
secure: false,
},
name: "session-cookie",
})
);
app.listen(app.get("port"), () => {
console.log("Server Open");
});