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

从项目中由浅入深的学习koa 、mongodb(4)

时间:2023-04-03 12:00:27 Node.js

从项目中由浅入深学习koa和mongodb在项目中由浅入深学习typescript(三)前言随着node.js的出现,前端已经可以使用js编写从前端到后端。本文使用node框架koa+mongodb从后台实现数据增删改查接口,前端使用umi+dva+ant-design-pro实现数据渲染。实现一个小型的全栈项目,so-easy1。效果图react-koa全栈项目,欢迎来到star2。技术栈koa:node框架koa-bodyparser:解析body的中间件koa-router:解析router的中间件mongoose:基于mongdodb数据库框架,运行数据nodemon:后台服务启动热更新3.项目目录├──app//main项目目录│├──controllrts//控制器目录(数据处理)││└──...//各表对应的控制器│├──middleware//中间件目录││└──resFormat.js//格式返回值│├──models//表目录(数据模型)││├──course.js//课程表││└──user.js//用户表│└──utils//工具库││├──formatDate.js//时间格式││└──passport.js//用户密码加密和验证工具├──db-template//从数据库导出的json文件├──routes//路由目录│└──api//接口目录││├──course_router.js//课程相关接口││└──user_router.js//用户相关接口├──app.js//项目入口└──config.js//基本配置信息4.项目启动步骤1.gitclone2.安装mongodb:http://www.runoob.com/mongodb...3、安装Robomongo或Robo3T是mongodb可视化操作工具(可选)4、启动mongod(启动mongodb),打开Robomongo或Robocdkoa-templatenpminpmrunstartcdreact-templatenpminpmrunstart注意:mongodb启动默认端口号是27017,开始看是否被占用。后端工程端口号为3000,可在koa-template/config.js中修改。和response对象被封装成一个对象,每个request都会创建一个Context,通过ctxctx方法request:requestbody;访问暴露的方法;响应:响应主体;ctx.cookies.get:获取cookie;ctx.throw:throwException请求属性header:请求头;方法:方法;url:请求地址;originalUrl请求原始网址;href:完整网址;主机名:主机名;type:请求头类型;响应属性header:响应头;status:状态,不设置则默认为200或204;body:响应主体,string(提示信息)BufferStream(流)ObjectArrayJSON-stringifiedullresponsewithoutcontent;get:获取响应头域;set:设置响应头;append:添加响应头;类型:响应类型;lastModified:如果存在,则返回为Date;etag:setcacheexamplerouter可以配置为不同的modulesctx.params获取动态路由参数fssplitfile7.mongoosemainAPIAPI函数Schema数据模式,表结构定义;每个schema都会映射到mongodb中的一个collection,它没有操作数据库能力modelschema生成的模型,可以对数据库进行mo操作del操作数据库方法API方法create/savecreateremovedeletedeleteonedeleteManydeletemultiplefindfindfindById通过id查找匹配文档数量的countfindfindOneupdateupdateupdateOneupdateoneupdateManyupdatemultiplefindOneAndUpdatefindoneandupdatefindByIdAndUpdatepassidfindandupdatefindOneAndRemovefindoneandremovereplaceOnereplaceawatchmonitorchangequeryqueryAPIfunctionwherespecifiedapathequalsequalornotgtgreaterthanltlessthansizeexistswithinwhat注:Query是通过Model.find()实例化聚合(聚合)APIAPI函数appendappendaddFieldsappendfilelimitlimitsizesortsortnote:aggregate=Model.aggregate()更详细的API请戳8.react项目详解在项目react9中由浅入深学习。总结一个koa项目就是从koa-bodyparser解析body,中间件处理传入的值,koa-router分发处理接口,mongose操作数据库入口so-easy!