使用mongoskin操作MongoDB

不該相遇在秋天發表於2017-11-30

 

mongoskin是一個操作MongoDB的模型工具 相當於資料庫類 與之相當的還有mongoose比較出名

 

安裝模組(特地加了版本,這裡被坑過,在Ubuntu中開發的好好的,部署到線上centos中mongodb模組最新版是3.0.0,因此和mongoskin不匹配,所以特別指定版本安裝)
npm install mongodb@2.2.33
npm install mongoskin@2.1.0

 

匯入mongoskin  連線MongoDB中test資料庫

var mongo = require('mongoskin');
var db = mongo.db("mongodb://localhost:27017/test", {native_parser: true});

 

操作與MongoDB原生語法大同小異  只不過多了回撥

 

router.post('/doadd', function (req, res, next) {
    var param = req.body;
    if(param.username && param.password){
        //插入資料
        db.collection('user').insert({'username': param.username,'password':param.password}, function (err, result) {
            db.close();
            if(!err){
                res.send({'status':1});
            }else{
                res.send({'status':0});
            }
        });
    }
});

 

router.post('/dodel', function (req, res, next) {
    var param = req.body;
    if(param.id){
        var ObjectId = mongo.ObjectID;
        db.collection('user').remove({'_id':ObjectId(param.id)}, function (err, result) {
            db.close();
            if(!err){
                res.send({'status':1});
            }else{
                res.send({'status':0});
            }
        });
    }
});

 

router.post('/doedit', function (req, res, next) {
    var param = req.body;
    if(param.username && param.password){
        var ObjectId = mongo.ObjectID;
        //修改單條資料
        db.collection('article').update({'_id':ObjectId(param._id),'username':param.username},{$set:{'password': param.password}}, function (err, result) {
            db.close();
            if(!err){
                res.send({'status':1});
            }else{
                res.send({'status':0});
            }
        });
    }
});

 

router.get('/', function (req, res, next) {
    db.collection('article').find().toArray(function (err, result) {
        db.close();
        res.render('admin/index', {title: '後臺管理',result:result});
    });
});

 

相關文章