nodejs操作mongodb

本文详细介绍使用Node.js和MongoDB进行数据库操作的方法,包括数据的增删改查,并通过具体示例展示如何在实际项目中应用这些技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、这里package.json的依赖版本为

"dependencies": {
  "ejs": "^2.6.1",
  "mongodb": "^3.1.12"
}

2、目录结构


3、01nodejs_mongodb.js(实现增加,修改和删除)

var http = require('http')
var ejs = require('ejs')
var app = require('./model/express_router');

var url = require('url')
var DBurl = 'mongodb://127.0.0.1:27017';
var MongoClient = require('mongodb').MongoClient;


http.createServer(app).listen(3000);


app.get('/', function (req, res) {
    var msg = 'this is the data from database';
    ejs.renderFile('./views/index.ejs', {
        msg: msg
    }, function (err, data) {
        res.send(data)
    })
})

app.get('/add', function (req, res) {
    MongoClient.connect(DBurl, function (err, db) {
        if (err) {
            console.log(err);
            console.log('the connection to the database has failed')
            return;
        }
        console.log('数据库连接成功')
        const dataBase = db.db('itying')
        const user = dataBase.collection('user')
        user.insertOne({
                "name": 'xionger',
                "age": 50
            }, function (error, result) {
                if(error){
                    console.log('the data is failed to be added to the database');
                    return;
                }
                res.send('the data is added to the database successly');
                db.close();//关闭数据库
            }
        )
    })
})

app.get('/edit',function(req,res){
    MongoClient.connect(DBurl,function(err,db){
        if(err){
            console.log(err);
            console.log('the connection to the database has failed')
            return;
        }
        console.log('数据库连接成功')
        const dataBase = db.db('itying')
        const user = dataBase.collection('user')
        user.update({"name":"lisi"},{$set:{"age":222}},
            function(error,data){
                if(error){
                    console.log('the change of the data is failed');
                    return;
                }
                console.log(data.toString());
                res.send('the change of the data is success')
                db.close();
            }
        )
    })
})
app.get('/delete',function(req,res){
    var query = url.parse(req.url,true).query;
    var name = query.name;
    MongoClient.connect(DBurl,function(err,db){
        if(err){
            console.log(err);
            console.log('the connection to the database has failed')
            return;
        }
        const dataBase = db.db('itying')
        const user = dataBase.collection('user')
        user.remove({"name":name},function(error,data){
            if(error){
                console.log('删除失败');
                return;
            }
            console.log(data.toString());
            res.send('the delete of the data is success')
            db.close();
        })
    })
})

4、02nodejs_mongodb.js(实现查询,并将查询结果在index.ejs上显示)

var http = require('http')
var MongoClient = require('mongodb').MongoClient;
var DBurl = 'mongodb://localhost:27017'
var app = require('./model/express_router')
http.createServer(app).listen(3000)
var ejs = require('ejs')
app.get('/',function(req,res){

    MongoClient.connect(DBurl,function(error,db) {
        if(error){
            console.log(error);
            console.log('the connection to the itying database is failed')
            return;
        }
        //根据字符(database name)返回一个数据库实例化对象
        const itying = db.db('itying')
        const user = itying.collection('user')

        var list = [];/*放数据库里面查询的所有数据*/
        var result = user.find({})
        result.each(function(error,doc){
            if(error){
                console.log(error);
            }else{
                if(doc!=null){
                    list.push(doc)
                }else{
                    ejs.renderFile('./views/index.ejs',{list:list},function(err,data){
                        res.send(data);
                    })
                    db.close()
                }
            }
        })

    })
})

app.get('/add',function(req,res){
    MongoClient.connect(DBurl,function(err,db){
        const dataBase = db.db('itying')
        const user = dataBase.collection('user')
        user.insertOne({name:"zhangsan",age:40},function(err,data){
            if(err){
                console.log('adding to database is failed')
                console.log(err);
                return;
            }
            console.log(data)
            res.send('adding data successly')
            db.close()
        })

    })
})

5、index.ejs

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
</head>
<body>
<ul>
    <%for(var i=0;i<list.length;i++){%>
        <li><%=list[i].name%></li>
    <%}%>
</ul>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值