[Node.js] MongoDB 연동하기

이상협·2022년 9월 17일
0

Node.js

목록 보기
1/6

MongoDB 연동하기

Mongoose 설치하기

  • 연동하려는 프로젝트 경로로 들어가서 npm install --save mongoose 실행
"dependencies": {
  "express": "^4.18.1",
  "mongoose": "^6.6.1"
}
  • express와 dotenv 도 같이 설치해준다.

  • 디렉터리 구조

mongooseTest/
├── models/
│   └── user.js
├── routes/
│   └── users.js
├── .env
├── app.js
└── pakage.json

.env 파일 만들기

// .env
# port number
PORT=4500
# MongoDB URI
# MONGO_URI=mongodb://localhost:27017/<db-name>
MONGO_URI=mongodb://localhost:27017/mongooseTest

app.js 파일 만들기

// app.js
require('dotenv').config()

const express = require('express')
const mongoose = require('mongoose')

const app = express()

const { PORT, MONGO_URI } = process.env

app.use(express.static('public'))
app.use(express.urlencoded({ extended: true }))
app.use(express.json())

// CONNECT TO MONGODB SERVER
mongoose
  .connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => console.log('Successfully connected to mongodb'))
  .catch(e => console.error(e))

app.use('/users', require('./routes/users')) // 이따가 만들거

app.listen(PORT, () => console.log(`Server listening on port ${PORT}`))

[Model] user.js 파일 만들기

// models/user.js
const mongoose = require('mongoose');

// Define Schemes
const userSchema = new mongoose.Schema({
  name: { type: String, required: true, unique: true },
  age: { type: Number, required: true },
},
{
  timestamps: true
});

userSchema.statics.findAll = function() {
    return this.find({})
}

// Create Model & Export
module.exports = mongoose.model('User', userSchema)

[Routes] users.js 파일 만들기

// routes/users.js
const router = require('express').Router()
const User = require('../models/user')

router.get('/', (req, res) => {
    User.findAll().then((users) => {
        if(!users.length) return res.status(404).send({err: 'User not found'})
        res.send(users)
    }). catch(err => {
        res.status(500).send(err)
    })
})

module.exports = router

실행

$ npm run start

> mongoosetest@1.0.0 start
> node app.js

Server listening on port 4500
Successfully connected to mongodb


참고

0개의 댓글