이번 예제는 Node.js에서 MongoDB 또는 MySQL 데이터 베이스를 연동하는 방법과 각각의 ORM인 Mongoose(몽고DB)의 Sequelize(MySQL)의 사용법을 알아보겠습니다.
1. MongoDB 설치 및 설정
- Windows: Mongo Community Edition 다운로드에서 설치합니다.
- macOS: Homebrew를 사용해 설치합니다.
brew tap mongodb/brew
brew install mongodb-community
- Linux: 공식문서에 배포판에 따라 설치방법이 다르므로 공식문서를 참조
다음 명령어로 MongoDB 데이터베이스 저장소 폴더를 생성합니다.
mkdir C:\data\db
이제 MongoDB를 실행합니다. 설치된 경로에 따라 다음 명령어를 입력합니다.
"C:\Program Files\MongoDB\Server\<버전>\bin\mongod.exe"
새로운 Node.js 프로젝트를 생성해서 그안에 mongoDB를 적용시켜줍니다.
mkdir my-mongo-app
cd my-mongo-app
npm init -y
다음 명령어로 MongoDB 라이브러리인 Mongoose를 설치해줍니다.
npm install mongoose & yarn add mongoose
2. Mongoose 사용법
다음은 Mongoose를 사용해 데이터베이스를 연결해보겠습니다. 프로젝트 안에 app.js를 만들어 다음코드를 작성합니다.
// app.js
const mongoose = require("mongoose");
mongoose
.connect("mongodb://localhost:27017/mydatabase", {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
console.log("MongoDB connected");
})
.catch((err) => {
console.error("MongoDB connection error:", err);
});
데이터 베이스를 연결해보았습니다. 그 다음에는 데이터의 스키마와 모델을 정의해야합니다.
// 스키마 및 모델 정의
const userSchema = new mongoose.Schema({
name: String,
age: Number,
});
const User = mongoose.model("User", userSchema);
그 다음 데이터를 CRUD(생성읽기업로드삭제)기능을 구현하는 코드를 작성해보겠습니다.
// 데이터베이스 연결
const mongoose = require("mongoose");
mongoose
.connect("mongodb://localhost:27017/mydatabase", {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
console.log("MongoDB connected");
})
.catch((err) => {
console.error("MongoDB connection error:", err);
});
// 스키마 및 모델 정의
const userSchema = new mongoose.Schema({
name: String,
age: Number,
});
const User = mongoose.model("User", userSchema);
// CRUD 데이터 생성
const createUser = async () => {
const user = new User({ name: "Alice", age: 30 });
await user.save();
console.log("User created", user);
};
// 데이터 읽기
const getUsers = async () => {
const users = await User.find();
console.log("Users:", users);
};
// 실행
createUser();
getUsers();
- 코드 작성: app.js 파일에 위 코드를 작성
- MongoDB 실행: 위에서 설명한 방법으로 MongoDB 서버를 실행
- Node.js 실행: 커맨드 프롬프트에 다음 명령어 입력
node app.js
/*
MongoDB connected
Users: []
User created {
name: 'Alice',
age: 30,
_id: new ObjectId('67bcf77c72d5f3f4abe2bf9a'),
__v: 0
}
*/
3.MySQL과 Sequelize 사용법
- MySQL 설치 및 설정
- MySQL Community Server 다운로드 페이지로 이동해 Windows 버전을 다운로드합니다.
- 설치 프로그램을 실행하고 기본 옵션으로 설치합니다.
- MySQL 실행
- MySQL을 설치후, Windows 서비스에서 MySQL을 찾아 실행합니다.
- MySQL Workbench를 통해 데이터베이스를 관리할 수 있음
- MySQL 로그인:
mysql -u root -p
- 데이터베이스 생성 명령어
CREATE DATABASE blog;
- 데이터베이스 확인
SHOW DATABASES;
- 새로운 Node.js 프로젝트 생성
mkdir my-sql-app
cd my-sql-app
npm init -y
- Sequelize 및 MySQL2 설치
npm install sequelize mysql2
다음은 Sequelize를 사용해 데이터베이스를 연결하는 코드를 작성합니다.
const { Sequelize, DataTypes } = require("sequelize");
const sequelize = new Sequelize("mydatabase", "root", "yourpassword", {
host: "localhost",
dialect: "mysql",
});
// 연결 테스트
const testConnection = async () => {
try {
await sequelize.authenticate();
console.log("MySQL connected");
} catch (error) {
console.error("MySQL connection error:", error);
}
};
testConnection();
// 모델 정의
const User = sequelize.define("User", {
name: {
type: DataTypes.STRING,
allowNull: false,
},
age: {
type: DataTypes.INTEGER,
allowNull: false,
},
});
// 데이터베이스 동기화
const syncDatabase = async () => {
await sequelize.sync();
console.log("Database synced!");
};
syncDatabase();
// 데이터 생성
const createUser = async () => {
const user = await User.create({ name: "Alice", age: 30 });
console.log("User created", user);
};
// 실행
const runApp = async () => {
await syncDatabase();
await createUser();
};
runApp();
- 코드 작성: app.js 파일에 위 코드를 작성
- MySQL 실행: 위에서 설명한 방법으로 MySQL 서버 실행
- Nodejs 실행: 커맨드 프롬프트에 다음 명령어 입력
node app.js
GitHub - nodeJsroom/node-js-bloging
Contribute to nodeJsroom/node-js-bloging development by creating an account on GitHub.
github.com
LIST
'Back-End > Node.js' 카테고리의 다른 글
[NodeJS] 7장 에러처리 (0) | 2025.02.27 |
---|---|
[NodeJS] 6장 인증 및 보안 (0) | 2025.02.26 |
[NodeJS] 4장 Express.js 프레임워크 (0) | 2025.02.23 |
[NodeJS] 3장 라우팅 구현, HTTP 서버만들기 (0) | 2025.02.22 |
[NodeJS] 2장 Node.js의 비동기 제어 (0) | 2025.02.15 |