[typescript] 타입스크립트로 MongoDB를 조작하는 Node.js 서버 개발 사례
이 블로그 포스트에서는 Node.js와 MongoDB를 사용하여 타입스크립트로 서버를 개발하는 방법에 대해 살펴볼 것입니다.
1. MongoDB 설치
먼저, MongoDB를 설치하고 로컬 환경에서 실행합니다. MongoDB 공식 웹사이트에서 제공하는 설치 가이드를 따라 진행합니다.
# MongoDB 설치
$ brew install mongodb
# MongoDB 실행
$ brew services start mongodb
2. Node.js 프로젝트 설정
다음으로, Node.js 프로젝트를 생성하고 타입스크립트를 사용할 것이므로 필요한 패키지를 설치합니다.
# Node.js 프로젝트 생성
$ mkdir my-node-project
$ cd my-node-project
$ npm init -y
# 타입스크립트 및 관련 패키지 설치
$ npm install typescript ts-node @types/node mongoose
3. 타입스크립트 설정
타입스크립트를 사용하기 위해 프로젝트 루트에 tsconfig.json
파일을 생성하고 필요한 설정을 추가합니다.
{
"compilerOptions": {
"target": "ESNext",
"module": "CommonJS",
"strict": true,
"esModuleInterop": true
}
}
4. MongoDB 연결
mongoose
라이브러리를 사용하여 Node.js 애플리케이션과 MongoDB를 연결합니다.
import mongoose from 'mongoose';
const DB_URL = 'mongodb://localhost:27017/my-database';
mongoose.connect(DB_URL, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
5. 모델 정의
MongoDB에서 사용할 데이터 모델을 타입스크립트로 정의합니다.
import { Schema, model, Document } from 'mongoose';
interface IUser extends Document {
name: string;
email: string;
}
const UserSchema = new Schema<IUser>({
name: { type: String, required: true },
email: { type: String, required: true },
});
const User = model<IUser>('User', UserSchema);
export default User;
6. 라우팅 및 컨트롤러
마지막으로, Express를 사용하여 라우팅 및 컨트롤러를 구현합니다.
import express from 'express';
import User from './models/User';
const app = express();
app.get('/users', async (req, res) => {
const users = await User.find();
res.json(users);
});
app.post('/users', async (req, res) => {
const { name, email } = req.body;
const newUser = new User({ name, email });
await newUser.save();
res.status(201).json(newUser);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
마무리
이제 타입스크립트와 MongoDB를 사용하여 Node.js 서버를 개발하는 방법에 대해 간략하게 알아보았습니다. 물론 실제 프로젝트에서는 보다 복잡한 구현이 필요할 수 있으며, 자세한 내용은 공식 문서를 참고하시기 바랍니다.
Happy coding!