728x90
반응형

Server.js

먼저 백엔드 서버를 express로 실행하기위해 설치해준다.

 

$ npm install express

 

 

그다음 package.json에 스크립트 서버를 실행하는 명령어를 추가해준다.

server/package.json

{
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}

 

이제 index.js 파일을 만들고 다음과 같이 작성해보자.

 

index.js

 

const express = require('express'); //express를 설치했기 때문에 가져올 수 있다.
const app = express();

app.get('/', (req, res) => {
    res.send('Hello World!');
})

app.listen(3001);

 

npm run start 명령어로 서버가 잘 돌아가는지 3001번 포트에서 확인해본다.

$ npm run start

 

Sequelize

백엔드 API를 구현한 다음 테스트해보자.

1. server폴더 안에 sequelize 폴더를 만들고 Node.js 의 MySQL 관리 모듈인 Sequelize 을 설치한다.

$ npm i sequelize mysql2
$ npm i -g sequelize-cli
$ sequelize init

 

그럼 이렇게 폴더들이 생긴 것을 확인할 수 있다.

 

 

2. config.json 파일에 사용할 데이터베이스를 설정해준다.

sequelize/config/config.json

{
  "development": {
    "username": "teepo2",
    "password": "test1234",
    "database": "example", 
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  ...

 

migrations 파일
데이터 베이스 스키마의 버전을 관리하기위한 하나의 방법. 개별 SQL 파일을 MySQL 콘솔 등에서 직접
실행하지 않고 프레임워크의 특정 명령어를 통해 실행하고 결과를 별도의 테이블에 버전 관리하는 기법

seeder 파일
서버를 실행하거나 콘솔 창 명령어를 실행했을 때 sequelize를 통해 DB에 데이터를 생성할 때 사용

 

 

3. models 파일 안에 Users 모델을 만들어보자.

models/Users.js

module.exports = (sequelize, DataTypes) => {

    const Users = sequelize.define("Users", {
      id: {
        type: DataTypes.UUID,
        defaultValue: DataTypes.UUIDV4,
        primaryKey: true,
        comment: "고유번호 UUID",
      },
      email: {
        type: DataTypes.STRING(100),
        validate: {
          isEmail: true,
        },
        comment: "이메일",
      },
      password: {
        type: DataTypes.STRING(60),
        comment: "비밀번호",
      },
      name: {
        type: DataTypes.STRING(100),
        comment: "이름",
      },
      phone: {
        type: DataTypes.STRING(72),
        comment: "전화번호",
      },
    }, {
      charset: "utf8", // 한국어 설정
      collate: "utf8_general_ci", // 한국어 설정
      tableName: "Users", // 테이블 이름
      timestamps: true, // createAt & updateAt 활성화
      paranoid: true, // timestamps 가 활성화 되어야 사용 가능 > deleteAt 옵션 on
    });
  
    return Users;
  };

 

4. 서버 파일에 sequelize를 추가해준다.

server/index.js

const express = require('express'); //express를 설치했기 때문에 가져올 수 있다.
const { sequelize } = require('./sequelize/models')
const app = express();

sequelize.sync({ force: false })
.then(() => {
    console.log('데이터베이스 연결 성공');
})
.catch((err) => {
    console.error(err);
});

app.get('/', (req, res) => {
    res.send('Hello World!');
})

app.listen(3001);

 

 

5. 다시 npm run start를 실행해보면 성공적으로 DB가 연결된 것을 확인할 수 있다.

 

HeidiSQL 에서도 Users 테이블이 만들어진 것을 확인할 수 있다.

728x90
반응형

+ Recent posts