当前位置: 首页 > 后端技术 > Node.js

学习nodejs+mongodb+koa2编写接口(四)新建用户表,编写用户增删改查接口

时间:2023-04-03 13:42:41 Node.js

温馨提示:阅读本文前,请确保之前的环境已经布置好1.主要文件结构如下api/controller/UserController.jsapi/module/User.jsapi/router/userRouter.jsapp.js2.启动界面和运行:nodeapp.js已经安装了nodemon(热加载),nodemonapp.js3。代码下面是app.js代码constKoa=require('koa')constfs=require('fs')constbodyParser=require('koa-bodyparser');constmongoose=require('猫鼬');constapp=newKoa()app.use(bodyParser())constdbOptions={useNewUrlParser:true,useUnifiedTopology:true};mongoose.connect("mongodb://localhost/test_ume",dbOptions).then(()=>{console.info('MongoDB准备好了');},err=>{console.error('连接错误:',err);});//test_ume本地数据库名/**加载路由中间件*/constrouter=require('./routes/router')();app.use(router.routes()).use(router.allowedMethods())/*启动服务器*/app.listen(3000,()=>{console.log('[demo]route-use-middlewareisstartingatport3000')})创建一个新的mongodb数据表UsersUser.js通过mongoose代码如下:constmongoose=require('mongoose');//账户数据库模型letUserSchema=newmongoose.Schema({username:String,password:String,email:String});让User=mongoose.model('User',UserSchema)module.exports=User;设置路由接口路径router.js代码如下constRouter=require('koa-router')constapi=require('./userRouter')();module.exports=()=>{//加载所有子路由}userRouter.js代码如下:constRouter=require('koa-router')constuserController=require('../controllers/UserController');module.exports=()=>{constapi=newRouter()api.get('/users',userController.getUserList)api.get('/user/:id',userController.getUserInfoById)api.get('/user/delete/:id',userController.deleteUser)api.post('/user/update',userController.updateUser)api.post('/user/add',userController.addUser)returnapi;接口的主要逻辑函数,定义返回对象UserController.js代码如下:constUser=require('../models/User');const_=require('loadsh');常量xss=要求('xss');exports.getUserList=async(ctx,next)=>{letval=nullconstdata=awaitUser.find()console.log('data',data)constresult={code:200,response:data}//console.info(ctx)ctx.response.body=result返回结果}exports.addUser=async(ctx,next)=>{letval=nullconstjsonRequestBody=ctx.request.bodyconsole.info(jsonRequestBody.username)letnewUser=newUser({用户名:xss(_.trim(jsonRequestBody.username)),密码:xss(_.trim(jsonRequestBody.password)),邮箱:xss(_.trim(jsonRequestBody.email))});让data=awaitnewUser.save();console.log('data',data)constresult={code:200,response:data,ts:12345}ctx.response.body=result返回结果}exports.deleteUser=async(ctx,next)=>{让val=nullconstdata=awaitUser.remove({_id:ctx.params.id})//console.log('data',data)constresult={code:200,response:data,}ctx.response.body=result返回结果}exports.updateUser=async(ctx,next)=>{letval=nullconstjsonRequestBody=ctx.request.主体console.info(jsonRequestBody.username)constdata=awaitUser.updateOne({_id:xss(_.trim(jsonRequestBody._id))},{$set:{“用户名”:xss(_.trim(jsonRequestBody.username)),"password":xss(_.trim(jsonRequestBody.password)),"email":xss(_.trim(jsonRequestBody.email))}})console.log('data',data)constresult={code:200,response:data,}ctx.response.body=result返回结果}exports.getUserInfoById=async(ctx,next)=>{letval=nullconsole.log(ctx.params.id);constdata=awaitUser.findOne({_id:ctx.params.id})console.log('data',data)constresult={code:200,response:data,}ctx.response.body=resultreturnresult}4.调试接口工具:PostMan新增用户查看所有用户列表,通过id查询用户信息,通过id修改用户信息,通过id删除用户信息,再次查询用户信息,验证删除.详细代码可以参考:https://github.com/Linda0821/api-koa2-service附上以上链接:学习nodejs+mongodb+koa2编写接口(一)环境布局学习nodejs+mongodb+koa2编写接口(二))koa2教程入门学习nodejs+mongodb+koa2写接口(三)mongodb的CRUD学习nodejs+mongodb+koa2写接口(四)新建用户表,写用户CRUD接口