이번 웹 프로젝트는 노드와 리액트에 대한 지식이 없는 상태에서 시작하기에, 유튜브에 있는 John Ahn님의 노드 리액트 기초 강의를 보며 공부하게 되었다.

강의는 NodeJs와 Express와 같이 기본적으로 필요한 플랫폼 및 프레임워크를 설치하는 내용으로 시작한다.

 

Express.js App 생성

index.js에서 기본적인 express 앱을 생성한다.

const express = require('express');

const app = express();

const port = 5000;


app.get('/', (req, res) => {  //루트 디렉터리에 오면 Hello World 출력

  res.send('Hello World!')
  
})


app.listen(port, () => {

  console.log(`Server Listening on http://localhost:${port}`)
  
})

↓참고 사이트

https://expressjs.com/en/starter/hello-world.html

 

"scripts": {

    "start": "node index.js",
    
    "test": "echo \"Error: no test specified\" && exit 1",
    
  },

그리고나서 package.json에 script부분에 "start": "node index.js" 를 추가한다.

 

Hello World!

터미널 창에 npm run start를 입력하여 앱을 실행시키면, localhost:5000에 Hello World!가 출력되는 것을 확인할 수 있다.

 

 

MongoDB 연동

그 뒤에 MongoDB 계정을 생성하고 Mongoose를 설치하여 App과 MongoDB를 연동한다.

const config = require('./config/key');

const mongoose = require('mongoose');


mongoose.connect(config.mongoURI, {

    useNewUrlParser: true, useUnifiedTopology: true, 
    
    useCreateIndex: true, useFindAndModify: false
    
}).then(() => console.log('MongoDB Connected...'))

.catch(err => console.log(err))

mongoURI에는 내 계정 아이디와 비밀번호가 포함되어 있기 때문에 파일에 따로 저장하여 불러와야한다.

그리고 해당 파일을 .gitignore에 추가해야 나중에 github에 올릴 때 그 파일을 제외시킬 수 있다. 

 

유저 스키마 생성

DB연동이 되면, User.js에 다음과 같이 유저 스키마를 작성한다.

const mongoose = require('mongoose');

const userSchema = mongoose.Schema({
    name: {
        type: String,
        maxlength: 50
    },
    email: {
        type: String, 
        trim: true, 
        unique: 1
    },
    password: {
        type: String,
        minlength: 5
    },
    id: {
        type: String,
        maxlength: 50
    },
    role: { //관리자 or 일반 유저
        type: Number,
        default: 0
    },
    image: String, 
    token: {
        type: String
    },
    tokenExp: { 
        type: Number
    }
})

const User = mongoose.model('User', userSchema)

module.exports = { User }

 

↓John Ahn님의 노드 리액트 기초 강의 유튜브 링크

https://www.youtube.com/watch?v=fgoMqmNKE18&list=PL9a7QRYt5fqkZC9jc7jntD1WuAogjo_9T

노드 리액트 기초 강의

 

 

'Study > React & Node.js' 카테고리의 다른 글

노드 리액트 기초 - 6th Day  (0) 2021.07.20
노드 리액트 기초 - 5th Day  (0) 2021.04.02
노드 리액트 기초 - 4th Day  (2) 2021.04.02
노드 리액트 기초 - 3rd Day  (0) 2021.04.02
노드 리액트 기초 - 2nd Day  (0) 2021.04.01

+ Recent posts