用到的框架是koa,数据库是mongodb,使用的模块是mongoose
代码准备
1.已经封装好的连接数据库和进行操作的mongoose.js
链接 https://blog.youkuaiyun.com/weixin_43659627/article/details/89054115
2.本次使用的代码
//查数据库是否存在数据
const dbClient=require(__dirname+'/mongoose');
class Main{
constructor(obj){
this.obj=obj;
}
find(){
return new Promise(async (resolve, reject) => {
try{
let dbName=this.obj.dbName||'koa';
let table=this.obj.table||'koa';
let data=this.obj.data||{};
//检测类型
if(!table instanceof String||!dbName instanceof String||!data instanceof Object){
throw new Error('dbName and table should be string,data should be a object!');
}
//查询语句
let res = await dbClient.getInstance(dbName).find(table, data);
resolve({
data:res,
isExist:res.length>0
});
}catch (e) {
reject(e);
}
});
}
}
module.exports=Main;
使用方法
一 首先实例化这个类,传入对象包含dbName(数据库名称,默认koa),table(集合名,默认koa),data(查询的对象primary key,默认为空)
二 使用async/await语法来等待这个类的实例执行完成find(),返回一个对象
{
data:’’,
isExist:false
}
结果 返回对象的data为返回的数组结果,isExist为是否存在
代码示例
(async function test(){
let a=new Main({
dbName:'koa',
table:'usertests',
data:{
username:'lfb'
}
});
let b=await a.find();
//如果存在查询的数据
if(b.isExist){
//数组的形式保存结果
console.log(b.data);
}else{
//不存在查询的数据
console.log(b.isExist);
}
})();