nodejs之mongodb操作

1、本地安装mongodb

  安装包:https://www.mongodb.com/download-center/community

2、npm安装mongodb模块

  npm install mongodb --save-dev

  npm install ejs --save-dev

3、创建express-route路由模块文件 

var url=require('url');

    //封装方法改变res  绑定res.send()
    function changeRes(res){
        res.send=function(data){
        res.writeHead(200,{"Content-Type":"text/html;charset='utf-8'"});
        res.end(data);
        }
    }

    //暴露的模块
    var Server=function(){
        var G=this;   /*全局变量*/
        //处理get和post请求
        this._get={};
        this._post={};
        var app=function(req,res){
        changeRes(res);
        //获取路由
        var pathname=url.parse(req.url).pathname;
        if(!pathname.endsWith('/')){
            pathname=pathname+'/';
        }
        //获取请求的方式 get  post
        var method=req.method.toLowerCase();
        if(G['_'+method][pathname]){
            if(method=='post'){ /*执行post请求*/
            var postStr='';
            req.on('data',function(chunk){
                postStr+=chunk;
            })
            req.on('end',function(err,chunk) {
                req.body=postStr;  /*表示拿到post的值*/
                G['_'+method][pathname](req,res); /*执行方法*/
            })
            }else{ /*执行get请求*/
            G['_'+method][pathname](req,res); /*执行方法*/
            }
        }else{
            res.end('no router');
        }
        }

        app.get=function(string,callback){
        if(!string.endsWith('/')){
            string=string+'/';
        }
        if(!string.startsWith('/')){
            string='/'+string;
        }
        //    /login/
        G._get[string]=callback;
        }

        app.post=function(string,callback){
        if(!string.endsWith('/')){
            string=string+'/';
        }
        if(!string.startsWith('/')){
            string='/'+string;
        }
        G._post[string]=callback;
        }
        return app;
    }
    module.exports=Server();
View Code

4、连接并添加数据

var http = require('http');
    var app = require('./module/express-route');
    var ejs = require('ejs');

    /*mongodb连接设置*/
    const  MongoClient = require('mongodb').MongoClient;
    const dburl = 'mongodb://localhost:27017';
    const dbName = 'test';
    const client = new MongoClient(dburl);
    /**/
    http.createServer(app).listen('8001');

    
    /**
     * 添加数据
     */
    app.get('/add',function (req,res) {
        client.connect(function(err) {
        if(err){//连接失败
            console.log("Connected fail to server");
        }
        //连接成功
        console.log("Connected successfully to server");
        const db = client.db(dbName);
        db.collection('shop').insertOne({'name':"name-yangwenjie","age":28},function (error,result) {
            if(error){
            console.log("insert database faile");
            }
            console.log("insert database successfully");
            client.close();
        })
        });
    })

注意:mongodb配置代码

const  MongoClient = require('mongodb').MongoClient; //引用mongodb
    const dburl = 'mongodb://localhost:27017'; //数据库url
    const dbName = 'test';    //数据库名
    const client = new MongoClient(dburl); //创建一个客户端
    client.connect(function(err) {
        if(err){
             console.log("Connected fail to server");
        }
        console.log("Connected successfully to server");
        const db = client.db(dbName);
        //添加数据库操作代码
        client.close();
    });

具体可以参考mongodb关于nodejs的官方文档:http://mongodb.github.io/node-mongodb-native/3.1/quick-start/quick-start/

猜你喜欢

转载自www.cnblogs.com/ywjfx/p/10400832.html