node中使用Mongodb和Mongoose

这篇博客介绍了如何在Express应用中通过Mongoose库连接MongoDB数据库,并展示了创建模型、添加数据、查询及更新数据的基本操作。示例代码包括了数据库连接、用户和VIP模型的创建,以及查询和保存数据的方法。
摘要由CSDN通过智能技术生成

在 Express 中利用 Mongoose 操作 Mongodb

  • 安装mongoose (相当于关系数据库中的驱动)
  • npm i mongoose --save
  • 连接数据库
第一个js文件
const mongoose = require('mongoose'); 
mongoose.connect( 
    'mongodb://localhost:27017/mydb181101', 
    {useNewUrlParser:true} //使用解析器来解析本次连接 
    ); 
module.exports = mongoose;

第二个js文件
let mongoose = require('./conndb'); //引入连接数据库的代码 //创建集合users对应的模板(相当于表结构,在nodejs里创建一个表结构) 
let userSchema = new mongoose.Schema({ 'userName':String, 'userPass':String });
//模型(把数据库中集合users和模板进行对应和绑定) 
let UserModel = mongoose.model('users',userSchema);
  • 往数据库添加数据和查询

1.
const mongoose = require("./conndb");

// 定义一个模型(结构)
let vipsSchema = new mongoose.Schema({
    userName: String,
    userPass: String
});

// 把结构和集合对应起来
let vipsModel = mongoose.model("vips", vipsSchema);

module.exports = {
    add: function (vipObj,success,fail) {
        // 创建实例
        let obj = new vipsModel(vipObj);
        // 插入到数据库
        obj.save((err, data) => {
            if (err) {
                console.log("出错了", err);
                fail();
            } else {
                console.log(data);
                success();
            }
        });
    },
    find: function (obj,success,fail) {//查
        console.log("vips.find");
        // vipsModel.find("查询条件",回调函数);
        vipsModel.find(obj,(err,data)=>{
            console.log("ddddd");
            if(err){
                console.log("err",err);
                fail();
            }else{
                success(data);
            }
        });
    },
    removeUser:function(obj,success,fail){//删
        UserModel.remove(obj,(err,data)=>{
            if(err){ 
                 fail&&fail(); 
             }else{ 
                  success&&success(data); 
            }
        }); 
    },
    updateUser:function(condationObj,updateObj,success,fail){//改
        UserModel.update(condationObj,updateObj,(err,data)=>{ 
            if(err){
                fail&&fail(); 
                
            }else{ 
                success&&success(data);
            } 
            
        });
       } 
    
}
}  
//
routes下js文件  查询
vips.find({userName:username,userPass:userpass},(data)=>{
      if(data.length==0){
        res.render("login",{msg:"登录失败!用户名或密码不正确"});
      }else{
        res.redirect("/index.html"); 
      }
  },()=>{
      res.render("login",{msg:"登录失败!连接出错"});
  });

2.
const mongoose = require("./conndb");

// 定义一个模型(结构)
let vipsSchema = new mongoose.Schema({
    userName:String,
    userPass:String
});

// 把结构和集合对应起来
let vipsModel = mongoose.model("vips",vipsSchema);

// 创建实例
let obj = new vipsModel({
    userName:"宝宝",
    userPass:"123"
});

// 插入到数据库
obj.save((err,data)=>{
    if(err){
        console.log("出错了",err);
    }else{
        console.log(data);
    }
});
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值