关于node中mongodb数据库进行增删改查

var bodyParser = require('body-parser')
var mongoose = require('mongoose');

// **************** MongoDB数据库 *******************
// 连接数据库
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/todo', {useMongoClient: true})
.then(function(){console.log('MongoDB数据库连接成功')})
.catch(function(err){ console.log(err)})

// 创建数据库结构,表名为todolists
var TodoList = mongoose.model('todolist', {
    id: Number,
    done: Boolean,
    title: String
})

// 测试代码:在数据库中todolists表存储数据
// TodoList({id:100, done:false, title: "吃饭"}).save(function(err, data){
//     if(err) throw err;
//     console.log('保存成功')
// })

// **************** MongoDB数据库 *******************

// 向外暴露函数,接收app对象
module.exports = function(app){
    app.use(bodyParser.urlencoded({ extended: false }))

    // 1.获取数据的请求(GET)
    app.get("/", function(req, res){
        // 查询数据库中的所有数据
        TodoList.find({}, function(err, data){
            // 将所有数据返回给前端首页进行渲染
            res.render("index", {"todos": data});
        })
    })


    // **********下面开始拦截各种前端发起的请求***********

    // 2.拦截前端提交数据的POST请求
    app.post("/add", function(req, res){
        var obj = {id: Date.now(), done:false, title: req.body.title}

        // 往数据库中插入数据,并生成一个不重复的id主键
        TodoList(obj).save(function(err, data){
            if(err) throw err;
            res.send('ok')
        })
    })


    // 3.拦截前端提交数据的POST请求
    app.delete("/del/:id", function(req, res){
        var id = Number(req.params.id);

        // 查询数据库,根据id删除数据
        TodoList.find({"id":id}).remove(function(err, data){
            if(err) throw err;
            res.send('ok') //返回响应结果给前端
        })
    })


    // 4.拦截前端的PUT修改请求,修改代办事项状态
    app.put("/update/:id", function(req, res){
        var id = Number(req.params.id);

        // 修改代办事项状态为(是/否)
        TodoList.findOne({"id":id}, function(err, data){
            data.done = !data.done; //赋值修改
            data.save(); //保存
            res.send('ok'); //返回响应结果给前端
        })
    })


    // 5.拦截前端的PATCH修改请求,修改代办事项的内容
    app.patch("/update/:id", function(req, res){
        var id = Number(req.params.id);

        // 修改代办事项的title内容,方法1
        // TodoList.findOne({"id":id}, function(err, data){
        //     data.title = req.body.title; //赋值修改
        //     data.save(); //保存
        //     res.send('ok'); //返回响应结果给前端
        // })

        TodoList.update({"id":id}, {$set: {"title": req.body.title}}, function(err, data){
            res.send('ok'); //返回响应结果给前端
        })
    })
}

猜你喜欢

转载自www.cnblogs.com/xuyx/p/11866941.html