Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바 Wrapper클래스
- 자바 try-catch
- Java문자열 클래스
- 자바 스트링클래스
- Java다운캐스팅
- nodejs
- Java업캐스팅
- Java객체배열
- java super( )
- 코딩
- db
- 자바 내부 클래스
- 자바 Random클래스
- Java thorw
- Java추상클래스
- 자바 제어문
- dbeaver
- 데이터베이스
- 자바 문자열 클래스
- 자바 예제
- Express
- DBMS
- 오라클
- oracle
- Java try-catch
- database
- 자바 추상메서드
- Java 추상 메서드
- Java 내부 클래스
- 자바 String클래스
Archives
- Today
- Total
코딩이란 무엇일까
nodeJs Sequelize사용하여 My sql과 연결해보기 본문
안녕하세요 오늘은 Sequelize라는 라이브러리를 사용하여 Mysql과 연결해보는 시간을 가져보겠습니다.
Sequelize (시퀄라이즈) 란?
Sequelize란 DB작업을 쉽게 할 수 있는 라이브러리입니다.
ORM으로 분류되고 SQL질의어를 몰라도 데이터베이스를 쉽게 관리할 수 있는 라이브러리입니다.
ORM이란?
ORM은 짧게 짚고 넘어가자면
ORM Object Relational Mapping의 줄임말로
관계형 데이터베이스의 데이터를 자동으로 연결해준다고 생각하면 쉽습니다.
객체지향 프로그래밍은 클래스를, 관계형 데이터베이스는 테이블을 사용합니다.
Sequelize 패키지 설치하기
npm i express mysql2 sequelize sequelize-cli dotenv
Sequelize, Sequelize-cli , dotenv , mysql2를 설치하였습니다
이후 npx sequelize init 명령어를 호출해줍니다.
json 파일에 설치된 라이브리와 npx sequelize init을 하면 config, migrations, models, seeders폴더들이 자동으로 생성된 것을 볼 수 있습니다.
config파일=> sequelize를 사용하기위한 환경을 설정하는 폴더
models / index.js => model을 정의하고 index.js 관계를 설정하기 위한 파일
시퀄라이즈로 database 만들어보기
위에 언급했다시피 시퀄 라이즈를 사용하면 sql문을 사용하지 않고 my sql 워크벤치를 사용하지 않아도
데이터베이스를 만들 수 있습니다.
데이터베이스를 정의해주는 파일인 config.js를 만들어보겠습니다.
import dotenv, { config } from"dotenv"
dotenv.config(); //dotenv 사용선언문
export default {
//개발용
development:{
username:"root", //사용자의이름 설정
password:process.env.DB_PASSWORD, // 암호 설정
database:"testdb", // 데이터베이스 이름 설정
host:"127.0.0.1",
port:"3306",
dialect:"mysql",
},
//테스트용
test:{
username:"root", //사용자의이름 설정
password:process.env.DB_PASSWORD, // 암호 설정
database:"testdb", // 데이터베이스 이름 설정
host:"127.0.0.1",
port:"3306",
dialect:"mysql",
},
//배포용
production:{
username:"root", //사용자의이름 설정
password:process.env.DB_PASSWORD, // 암호 설정
database:"testdb", // 데이터베이스 이름 설정
host:"127.0.0.1",
port:"3306",
dialect:"mysql",
},
}
시퀄 라이즈로 table짜보기
데이터 베이스를 만들었으니 안에 들어갈 테이블을 만들어봅시다.
우선 사용자의 정보를 담아줄 수 있는 테이블을 만들기 위해 user.js파일을 만들겠습니다.
import Sequelize from "sequelize";
export default class User extends Sequelize.Model {
static init(sequelize) {
return super.init(
{
email: {
type: Sequelize.STRING(100), // => String은 varchar와 같은 말
allowNull: false, // null값을 허용할지
commnet: "이메일", //컬럼에대한 설명
},
password: {
type: Sequelize.STRING(100),
allowNull: false,
comment: "비밀번호",
},
},
{
//테이블에 대한 설정
sequelize,
timestamps: true,
modelName: "User", //웬만하면 클래스네임과 동일하게
tableName: "user", //DB 에 저장될 실제 테이블 이름
charset: "utf8",
collage: "utf8_gernal_ci",
}
);
}
static associate(db) {
//관계설정
}
}
user라는 테이블에 email칼럼과 password칼럼을 생성해주었습니다.
index.js파일 설정해주기
우선 기존에 index.js에 들어있는 내용은 다 없애 주시고 밑에 내용을 작성했습니다.\
import Sequelize from "sequelize";
import user from "./user.js";
import config from "../config/config.js";
const env = process.env.NODE_ENV || "development"; //배포용인지 개발용인지.
const dbconfig = config[env]; //db설정에 env를 전달
const db = {};
const sequelize = new Sequelize(
dbconfig.database,
dbconfig.username,
dbconfig.password,
dbconfig
); //데이터베이스에 설정해준 값을 전달해줌
db.User = user; // user.js에서 설정한 값들을 user에 전달
Object.keys(db).forEach((modelName) => {
db[modelName].init(sequelize);
});
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize; //시퀄라이즈 값 전달
db.Sequelize = Sequelize; ////시퀄라이즈 값 전달
export default db;
app.js파일에서 MySQL연결하기
이제 MYsql과 연결을 하기위해 app.js파일에 서버를 구동하고 데이터베이스까지 연결을 해봅시다.
import express from "express";
import db from "./models/index.js";
import user from "./routes/user.js";
const app = express();
app.set("port", 3000);
db.sequelize //mysql과 연결해주는 부분
.sync()
.then(() => {
console.log("DB연결에 성공하였습니다"); //성공할 시
})
.catch((err) => console.log(err)); //실패할 시
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use("/user", user);
app.listen(app.get("port"), () => {
console.log(`${app.get("port")}번 서버 실행 중`);
});
서버를 구동시킨 뒤 아래와 같이 성공했을 때 console.log에 뜰 메시지가 뜨면 성공하신 겁니다.
'node.js' 카테고리의 다른 글
nodeJs 사용해서 간단한 서버 구축해보기 (0) | 2022.08.24 |
---|---|
Node js에 express설치 및 express이란? (0) | 2022.08.19 |
NodeJS란 무엇인가. (1) | 2022.08.17 |
Comments