트렐로 클론에 관해서 블로그 포스팅을 하려고 합니다.
우선 express와 sequelize를 이용해 기본 셋팅을 먼저 해보겠습니다.
아래의 명령어로 express를 설치합니다.
npm install express-generator -g
express를 설치 해줍니다. react와 연결을 할 것이기 때문에 저는 view 파일없이 시작하려고 합니다.
express [파일명] --no-view
// 파일을 받고 난 뒤 nodejs를 설치해주세요
cd [파일명]
yarn or npm install
설치가 끄남면 이렇게 기본 세팅이 되어 나옵니다.
port 번호는 ./bin/www 에서 수정이 가능합니다.
express 파일에서 아래와 같은 명령어를 입력해 줍니다.
sequlize나 mysql에 대한 설명을 이번 포스팅에서는 생략하도록 하겠습니다.
yarn add sequelize mysql2
npm i -g sequelize-cli /*yarn add가 되지 않네요*/
sequelize init
설치가 끝나면 이렇게 세팅이 됩니다.
./config/config.json 의 내용을 알맞게 고쳐줍니다.
./model/index.js 파일도 조금 더 쉽게 고쳐보겠습니다.
const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require('../config/config')[env];
const db = {};
const sequelize = new Sequelize(
config.database,
config.username,
config.password,
config,
);
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
./model/user.js 파일을 추가하고 내용을 채워 넣겠습니다.
module.exports = (sequelize, DataTypes) =>
sequelize.define(
'user',
{
email: {
type: DataTypes.STRING(40),
allowNull: true,
unique: true,
},
nick: {
type: DataTypes.STRING(15),
allowNull: false,
},
password: {
type: DataTypes.STRING(100),
allowNull: true,
},
provider: {
type: DataTypes.STRING(10),
allowNull: false,
defaultValue: 'local',
},
},
{
timestamps: true,
paranoid: true,
},
);
email, nick, password, provider를 받을 예정입니다. provider의 default 값은 'local'입니다.
./model/index.js 에 user.js를 추가하겠습니다.
const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require('../config/config')[env];
const db = {};
const sequelize = new Sequelize(
config.database,
config.username,
config.password,
config,
);
db.sequelize = sequelize;
db.Sequelize = Sequelize;
// user model 추가
db.User = require('./user')(sequelize, Sequelize);
module.exports = db;
app.js 에 sequelize를 연결시켜 줍니다.
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
// sequelize를 불러옵니다.
const { sequelize } = require('./models');
var app = express();
// sequelize를 작동시킵니다.
sequelize.sync();
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
module.exports = app;
파일을 실행해주면 데이터베이스에 user 테이블이 생성됩니다.
안녕하세요 로그인 시스템 구현중이었는데 많은 도움이 됐습니다. 감사합니다.