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});
});
});