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

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修改代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值