您的位置:首页 > 数据库 > Mongodb

node 学习(10) -- Nodejs 操作 MongoDb 数据库

2018-03-08 18:10 656 查看
1.首先我们需要安装mongodb包:

npm install mongodb –save-dev

mongodb学习

2.接下来我们就来正式查看一下nodejs是如何连接mongodb的

var http=require('http');

var url=require('url');

// 引入mongodb下的MongoClient方法
var MongoClient = require('mongodb').MongoClient;
//定义数据库文件地址,这里用的是本地的student数据库
var DBurl = 'mongodb://localhost:27017/student';
var G={};

//定义方法开始结束
var app=function(req,res){
//console.log('app'+req);

var pathname=url.parse(req.url).pathname;

if(!pathname.endsWith('/')){

pathname=pathname+'/';
}

if(G[pathname]){
G[pathname](req,res);  /*执行注册的方法*/
}else{

res.end('no router');
}
}

//定义一个get方法
app.get=function(string,callback){

if(!string.endsWith('/')){
string=string+'/';

}
if(!string.startsWith('/')){
string='/'+string;

}

//    /login/
G[string]=callback;

//注册方法
//G['login']=function(req,res){
//
//}
}

//只有有请求 就会触发app这个方法
http.createServer(app).listen(3000);

#增加#
app.get('/add',function(req,res){
MongoClient.connect(DBurl, function(err, db){
if(err){
console.log('出错了~');
return;
}

db.collection('admin').insertOne({'userid': 123, 'name':'testname12'}, function(error,data){
if(error){
console.log('error,',error);
return;
}

console.log('data,',data);
})

res.end('success');
db.close();
})
})

#删除#
app.get('/delete', function(req,res){
MongoClient.connect(DBurl, function(err, db){
if(err){
console.log('err,',err);
return;
}
db.collection('admin').deleteOne({ 'userid': 333 }, function(error, data){
if(error){
console.log('error,', error);
return;
}

console.log('data,',data);
db.close();
})
})
})

#更新#
app.get('/update', function(req,res){
MongoClient.connect(DBurl, function(err, db){
if(err){
console.log('err,',err);
return;
}
db.collection('admin').updateOne({ 'userid': 123 }, {$set: { 'userid': 333, 'name': 'demoname' }}, function(error, data){
if(error){
console.log('error,', error);
return;
}

console.log('data,',data);
db.close();
})
})
})

#查找#
app.get('/search', function(req,res){
MongoClient.connect(DBurl, function(err, db){
if(err){
console.log('err,',err);
return;
}
var data = db.collection('admin').find().toArray(function(error, val){
console.log('toArrayData,',val);
});
res.end('ok');
db.close();
})
})


注意:由于现在mongodb版本的升到3.0了,上述代码基于的是2.2的版本, 因此在安装mongodb的时候如果没有指定版本,而默认安装3.0的版本,那么在执行上述代码的时候,会因为对应api变更的问题报错(db.collection is not a function)这种情况下,要么将mongodb的版本降级(更改package.json中的mongodb版本号),要么就是参照3.0的版本api修改代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: