프로젝트 구조:

우선 VS code에 프로젝트 구조를 아래와 같이 설계했다. 그리고 필요한 프로그램들을 express, multer, mongodb, mongoose, ejs, env, nodemon 등을 설치했다.

1. env 파일에 DB 정보 입력하기

(env 파일은 비공개 파일로 주로 민감한 정보를 저장하는데 쓴다).

//.env 파일에 포트와 DB_URI 정보를 입력한다. 
PORT = 5000
DB_URI = mongodb://localhost:27017/photo_album

2. 서버 세팅과 설치한 프로그램 import 하기

main.js에 서버를 세팅하고 파일업로드, DB 연결, ejs 템플릿 셋업을 한다.nodes 에서는 require () 을 사용해서 설치해둔 프로그램들을 import 한다.

// main.js 서버 파일 
// imports 
var require
require('dotenv').config();
const express = require('express');
const mongoose = require('mongoose');
const session = require('express-session');

3. express 를 사용해서 서버를 5000포트로 연결시킨다.

    const app = express();
    const PORT = process.env.PORT || 4000;
    
    app.listen(PORT, ()=> {
        console.log(`server started at http://localhost:${PORT}`);
    });

4. mongoose를 사용해서 내 어플리케이션과 db를 연결한다.

.connect () 를 사용해서 env 파일에 저장해둔 내 DB_URI를 연결해준다. db가 성공적으로 연결되면 console로 성공 메세지를 보내주고, 에러가 생기면 에러 메세지를 보내준다.

    //database connection
    mongoose.connect(process.env.DB_URI, 
    {useNewUrlParser: true, useUnifiedTopology: true});
    const db = mongoose.connection;
    db.on("error", (error)=> console.log(error));
    db.once("open", () => console.log("connection success") );

5. 세션 암호화하기

express session을 사용해서 보안을 위해 세션을 암호화 한다 (잘 이해가 안간다,, 유트브 강의 따라 하게 된 작업)

    //middlewares 
    app.use(express.urlencoded({extended: false}));
    app.use(express.json());
    
    app.use(session({
        secret: 'my secret key',
        saveUninitialized: true,
        resave: false,
    })
    );
    
    app.use((req,res,next)=> {
        res.locals.message= req.session.message;
        delete req.session.message;
        next();
    });

6. ejs templates 셋업

ejs 는 html에 다이나믹한 컨텐츠를 엠베드 시켜준다.db에 저장한 파일을 애플리케이션에 불러올때 필요하다.

    //set template engine
    app.set('view engine', 'ejs');
profile
웹개발자가 되고 싶은 수딩의 코딩 일지

0개의 댓글