Skip to content

Instantly share code, notes, and snippets.

@wumanho
Created July 11, 2021 14:32
Show Gist options
  • Save wumanho/4154b6307e3d2c626a2767f4c0f01fcc to your computer and use it in GitHub Desktop.
Save wumanho/4154b6307e3d2c626a2767f4c0f01fcc to your computer and use it in GitHub Desktop.
db.js
const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/todoapp', {
useNewUrlParser: true,
useUnifiedTopology: true
})
const taskSchema = mongoose.Schema({
title: String,
done: Boolean
})
const Task = mongoose.model('Task', taskSchema, 'tasks')
const db = {
read(data = {}) {
return new Promise((resolve, reject) => {
Task.find(data).then(res => {
resolve(res)
}).catch((err) => {
reject(err)
})
})
},
write(data) {
return new Promise((resolve, reject) => {
const t = new Task(data)
t.save().then(() => {
resolve()
}).catch((err) => {
reject(err)
})
})
},
update(field,id, newData) {
return new Promise((resolve, reject) => {
Task.updateOne({_id: id}, {[field]: newData}).then(res=>{
resolve(res)
}).catch((err)=>{
reject(err)
})
})
},
delete(id){
return new Promise((resolve, reject) => {
Task.deleteOne({_id: id}).then(res=>{
resolve(res)
}).catch((err)=>{
reject(err)
})
})
},
clear(){
return new Promise((resolve, reject) => {
Task.remove({}).then(res=>{
resolve(res)
}).catch((err)=>{
reject(err)
})
})
},
close(){
mongoose.connection.close()
}
}
module.exports = db
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment