mongoose封装管理mongodb的公共模块

这篇博客介绍了如何利用mongoose来封装管理MongoDB的公共模块。首先通过npm安装mongoose,然后进行数据库配置,包括数据库名、IP地址、用户名和密码。接着连接数据库,建立schema和model,并提供了通用的操作方法,如查询和保存。最后展示了如何在实际应用中使用这些封装好的功能。

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


1 安装mongoose

npm install mongoose

 

2 应用程序中只使用一个数据库(使用)

A. 分层设计

我们分析mongoose的连接mongodb的程序可以知道,连接过程可以分为以下几层:

i. 数据库配置

ii. 连接数据库

iii. 建立schema

iv. 建立model

v. 操做mongodb

B. 根据上面的分层我们来实现程序代码

i. 数据库配置(dbProperties.js

exports.dbname='sadb'//数据库名

exports.dbip='localhost'//ip地址

exports.dbusername=''//数据库用户名

exports.dbpassword=''//数据库密码

 

ii. 连接数据库(mongodbCon.js

var mongoose=require('mongoose');

  var dbProperties=require('../../dbProperties/dbProperties.js');

  var dburl='mongodb://'+dbProperties.dbip+'/'+dbProperties.dbname

mongoose.connect(dburl,function(err){

console.log('dburl='+dburl);

if(!err){

console.log('connected to MongoDB');

}else{

throw err;

}

})

module.exports=mongoose

 

iii. 建立schema(userSchema.js)

var mongoose=require('../mongodbCon.js');

var Schema=mongoose.Schema;

//骨架模板

module.exports.userSchema=new Schema({

username:String, //用户姓名

password:String,//用户密码

status:String//用户状态0启用,1禁用

})

 

iv. 建立model(modelDao.jsuserModelImpl.js)

modelDao.js(mongodb的通用方法)

module.exports.find=function(obj){

obj.find({},function(err,docs){

console.log(docs);

return docs;

});

}

module.exports.save=function(obj){

console.log('users='+obj);

obj.save(function(err){

if(err){

console.log('保存失败')

}

console.log('保存成功');

});

}

 

///////////////////

userModelImpl.js(创建模型)

var mongoose=require('../mongodbCon.js');

var schema=require('../Schema/userSchema.js');

var modelDao=require('./modelDao.js');

//实例化模型,形成文档(对应关系数据库中的记录)

module.exports=function (obj) {

//模型

if(obj){

return mongoose.model(obj,schema.userSchema);

}else{

return mongoose.model('user',schema.userSchema);

}

};

 

v. 操做mongodbtest.js

var path='../dbUtil/mongodbUtil/model/';

var modelDao=require(path+'modelDao.js');

var userModel=require(path+'userModelImpl.js')();

var users=new userModel({

username:'tl', //用户姓名

password:'12345',//用户密码

status:'0'//用户状态0启用,1禁用

})

//保存数据

modelDao.save(users);

//查询数据

modelDao.find(userModel);

 

vi. 运行test.js

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值