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");
});