티스토리 뷰
PORT=3000
SESSION_SECRET=your_very_secret_key_here
NODE_ENV=development
이 설정은 서버를 구성하고 필요한 미들웨어를 설정하는 기본적인 내용을 포함한다.
먼저, 필요한 패키지들을 설치해 준다.
npm init -y
npm install express express-session cors helmet morgan dotenv mariadb bcrypt ejs
아래는 기본적인 소스코드다.
require('dotenv').config(); // .env 파일에서 환경 변수 로드
const express = require('express');
const session = require('express-session');
const cors = require('cors');
const helmet = require('helmet');
const morgan = require('morgan');
const app = express();
// 미들웨어 설정
app.use(helmet()); // 기본적인 보안 헤더 설정
app.use(cors()); // CORS 설정
app.use(morgan('dev')); // 로깅
app.use(express.json()); // JSON 파싱
app.use(express.urlencoded({ extended: true })); // URL-encoded 데이터 파싱
// 세션 설정
app.use(session({
secret: process.env.SESSION_SECRET || 'your_session_secret',
resave: false,
saveUninitialized: false,
cookie: { secure: process.env.NODE_ENV === 'production' } // HTTPS에서만 쿠키 전송 (프로덕션 환경)
}));
// 데이터베이스 연결 (이전에 설정한 MariaDB 연결 사용)
const { executeQuery } = require('./db');
// 라우트 설정 (예시)
app.get('/', (req, res) => {
res.send('Welcome to the admin page');
});
// 에러 핸들링 미들웨어
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
// 서버 시작
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
module.exports = app; // 테스트를 위해 app 객체 내보내기
- 환경 변수: dotenv를 사용하여 .env 파일에서 환경 변수를 로드합니다.
- 보안:
- helmet을 사용하여 기본적인 보안 헤더를 설정합니다.
- HTTPS 환경에서만 쿠키를 전송하도록 설정합니다 (프로덕션 환경).
- 미들웨어:
- cors를 사용하여 Cross-Origin Resource Sharing을 설정합니다.
- morgan을 사용하여 HTTP 요청 로깅을 설정합니다.
- express.json()과 express.urlencoded()를 사용하여 요청 본문 파싱을 설정합니다.
- 세션: express-session을 사용하여 세션 관리를 설정합니다.
- 데이터베이스: 이전에 설정한 MariaDB 연결을 가져옵니다.
- 라우트: 기본 라우트 예시를 포함했습니다.
- 에러 핸들링: 기본적인 에러 핸들링 미들웨어를 설정했습니다.
- 서버 시작: 환경 변수에서 포트를 가져오거나 기본값 3000을 사용합니다.
이 설정을 사용하려면 프로젝트 루트에 .env 파일을 만들고 다음과 같은 내용을 추가해 준다.
PORT=3000
SESSION_SECRET=your_very_secret_key_here
NODE_ENV=development
'IT 이야기 > Node.js' 카테고리의 다른 글
[express.js] 카페24API로 고객ID 가져오기 (0) | 2025.01.21 |
---|---|
[express.js] 카페24 쇼핑몰의 적립급을 조회/지급/차감 - 1편 (0) | 2025.01.21 |
Express.js와 EJS를 사용하여 다국어 지원 관리자 페이지를 작성하려면 (0) | 2025.01.14 |
express.js와 mariaDB 연결 문제 (0) | 2025.01.10 |
express.js 로그인 시스템 구현 시 보안 (0) | 2025.01.05 |
[SERVER] ubuntu, nginx, node.js mariaDB로 서버 세팅하기 (1) | 2024.09.26 |
Hostinger 사용기1 - 설치 (0) | 2024.06.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- W3Schools Online Web Tutorials
- 구차니의 잡동사니 모음
- [IT]블로거팁닷컴
- 비앤아이님의 블로그
- Blog Suspect
- 즐거운하루 blog
- zinicap의 검색엔진 마케팅(SEM)
- 머니야머니야님의 블로그
- [Friend] AtinStory
- [기타배우기]해브원 박스
- [웹표준] SINDB.com
- 해커 C 이야기
- [애드센스] 길라잡이
- 정순봉의 IT SCHOOL
- 씨디맨의 컴퓨터이야기
- 2proo Life Story
- 못된준코의 세상리뷰
- [IT강좌] 정보문화사
- IN 대전
- 에우르트는 나쁜남자 -_-
- 씬의 싱크탱크
- 엔돌슨의 IT이야기
- 진이늘이
- 'Cooltime'의 블로그
- 후이의 Tistory
- Soulstorage
- 앤드&엔드의 블로그
- June Blog
- 노지의 소박한 이야기
- gbWorld
- 인터넷 속 나의 생각
- HarshNix
- ART of WEB
- 녹두장군 - 상상을 현실로
TAG
- It
- MBTI 테스트
- MBTI 검사
- HTML
- MBTI
- 안드로이드 어플
- 예제 소스
- 안드로이드
- 인터넷 익스플로러
- 강의
- 프로그래밍 문제
- 프로그래밍
- 스마트폰
- C언어 문제
- 성공
- 리뷰
- 소스
- C언어 소스
- 소스코드
- JavaScript
- C언어
- MBTI 강좌
- MBTI 자료
- C
- 모토로이
- 인터넷
- 안드로이드 어플 추천
- 강좌
- 효과음
- php
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함