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
# port number
PORT=4500
# MongoDB URI
# MONGO_URI=mongodb://localhost:27017/<db-name>
MONGO_URI=mongodb://localhost:27017/mongooseTest
// 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}`))
// 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
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