高雅+猫鼬实现简单增删改查接口的示例代码

  

配合上一篇文章的联系人应用(https://www.jb51.net/article/161160.htm),实现配套的基于nodejs的后台增删改查接口

  

  
      <李> node . js李   <李> mongoDB李   
  

  

高雅(https://koa.bootcss.com,一个nodejs的开发框架),猫鼬(https://mongoosejs.com, mongDB操作工具)

  

  

洋槐+猫鼬实现简单增删改查接口的示例代码

  

  

首先在MongoDB安装盘的根目录下(这里假设是D盘)新建一个文件夹数据,然后在MongoDB的本中打开终端,输入mongod——DBpath D: \数据,这样MongoDB的数据存放地点就配置好了。

  

然后双击本中的mongo.exe, mongoDB就启动完成了。

  

  

app.js为入口文件,功能是连接数据库,导入文件,引入亚组件,最后启动服务。

        使用严格的;      const fs=要求(fs);   const path=要求(“路径”);   const猫鼬=要求(“猫鼬”);      const db=癿ongodb://localhost/测试”;/*连接数据库*/猫鼬。承诺=要求(“蓝鸟”);   猫鼬。连接(db, {useMongoClient:真});/* *   *获取数据库表对应的js对象所在的路径   * @type{[型]}   */const models_path=路径。加入(__dirname/app/模型);/* *   *已递归的形式,读取模型文件夹下的js模型文件,并要求   * @param{[型]}modelPath[描述]   * @return{[型]}[描述]   */让走=函数(modelPath) {   fs.readdirSync (modelPath)。forEach(函数(文件){   让filePath=路径。加入(modelPath,‘/?文件)   让统计=fs.statSync (filePath)      如果(stat.isFile ()) {   如果(/(. *)\。(js |咖啡)/test(文件)){   要求(filePath)   }   }   else if (stat.isDirectory ()) {   步行(filePath)   }   })   };   走(models_path);      要求(“babel-register”);   const高雅=要求(“高雅”);   const记录器=要求(“koa-logger”);   const会话=要求(“koa-session”);   const bodyParser=要求(“koa-bodyparser”);   const应用=new高雅();      app.use (logger ());   app.use(会话(app));   app.use (bodyParser ());/* *   *使用路由转发请求   * @type{[型]}   */const路由器=要求(“。/config/路由器”)();      app.use (router.routes ());   app.use (router.allowedMethods ());      app.listen (3000);   控制台。日志(“应用始于3000端口…”);      

  

路由配置在config/router.js中进行。

        const路由器=要求(“koa-router”);   const用户=要求(“. ./app/controllers/用户”);      模块。出口=function () {   让路由器=new路由器({   前缀:“/api”   });      路由器。邮报》(“/测试/用户/用户”,User.users);   路由器。邮报》(“/测试/用户/用户”,User.user);   路由器。帖子(/测试/user/添加,User.addUser);   路由器。邮报》(“/测试/user/删除”,User.deleteUser);   返回路由器   };      之前      

发布方法第一参数为路由地址,第二参数为路由地址对应的方法只

  

  

表结构定义在app/模型/user.js中。

        让猫鼬=要求(“猫鼬”);   让模式=mongoose.Schema;//定义表结构   让UserSchema=新模式({   名称:{   类型:字符串,   要求:真正的   },   性:字符串,   面积:字符串,   总是:布尔,   关系:数组,   手机:字符串,   电话:字符串,   描述:字符串,   id:字符串   });//参数用户数据库中的集合名称,不存在会创建。   让用户=猫鼬。模型(“用户”,UserSchema);      模块。出口=用户;      之前      

  

一些增删改查的工具方法放在app/dbhelp userHelp.js中

        使用严格的;      让猫鼬=要求(“猫鼬”);   让用户=mongoose.model(“用户”);/*查找用户*/出口。findAllUsers=异步()=比;{   让查询=User.find ();   让res=[];   等待查询。exec(函数(呃,用户){   如果(err) {   res=[];   其他}{   res=用户;   }   });   返回res   };/*查找特定用户*/出口。findFilterUsers=异步(params)=比;{   让nameReg=new RegExp (params.name,“我”);   让查询=User.find ({   名称:{   regex:美元nameReg   }   });   让res=[];   等待查询。exec(函数(呃,用户){   如果(err) {   res=[]   其他}{   res=用户;   }   });   返回res   };/*查找单个用户*/出口。findUser=异步(params)=比;{   让查询=User.find ({   id: id   });   让res={};   等待查询。exec(函数(呃,摘要){   如果(err) {   res='没有该用户”;   其他}{   res=摘要[0];   }   });   返回res   };/*新增用户*/出口。addUser=异步(用户)=比;{   用户=等待user.save ();   返回用户   };/*编辑用户*/出口。updateUser=异步(用户)=比;{   用户=等待用户。更新({id:用户。id}, {   美元:{   名称:user.name,   性:user.sex,   面积:user.area,   总是:user.always,   关系:user.relationship,   电话:user.phone,   移动:user.mobile,   描述:user.desc   }   });   返回用户   };/*删除用户*/exports.deleteUser=异步({id})=比;{   让国旗=false;   console.log('标志==========祝辞的+标志);   等待用户。删除({id},函数(err) {   如果(err) {   国旗=false   其他}{   国旗=true   }      });   console.log('标志=====等待=====祝辞的+标志);   返回国旗   

高雅+猫鼬实现简单增删改查接口的示例代码