摘要:序列文章从项目中由浅入深的学习微信小程序和快应用从项目中由浅入深的学习从项目中由浅入深的学习前言的出现前端已经可以用一把梭从前端写到后台。
序列文章
从项目中由浅入深的学习vue,微信小程序和快应用 (1)
从项目中由浅入深的学习react (2)
从项目中由浅入深的学习typescript (3)
node.js的出现前端已经可以用js一把梭,从前端写到后台。1.效果图
本文从后台利用node的框架koa+mongodb实现数据的增删改查和注册接口,前端利用umi + dva +ant-design-pro来实现数据渲染。实现一个小全栈project,就是so-easy
react-koa 全栈项目,欢迎star
koa:node框架
koa-bodyparser:解析body的中间件
koa-router :解析router的中间件
mongoose :基于mongdodb的数据库框架,操作数据
nodemon:后台服务启动热更新
├── app // 主项目目录
│ ├── 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 // 基础配置信息
1.git clone
2.安装mongodb:http://www.runoob.com/mongodb...
3.安装 Robomongo是mongodb可视化操作工具 (可选)
4.启动
cd koa-template
npm run start
cd react-template
npm run start
注意:
mongodb启动默认端口号是27017,启动看是否被占用
后端项目端口号是3000,可以在koa-template/config.js里面修改
API | 作用 |
---|---|
new koa() | 得到koa实例 |
use | koa的属性,添加中间件 |
context | 将 node 的 request 和 response 对象封装到单个对象中,每个请求都将创建一个 Context,通过ctx访问暴露的方法 |
ctx方法 | request:请求主体; response:响应主体; ctx.cookies.get:获取cookie; ctx.throw:抛出异常 |
request属性 | header:请求头; method:方法; url:请求url; originalUrl请求原始URL; href:完整URL; hostname:主机名; type:请求头类型; |
response属性 | header:响应头; status:状态,未设置默认为200或204; body:响应主体,string(提示信息) Buffer Stream(流) Object Array JSON-字符串化ull 无内容响应; get:获取响应头字段; set:设置响应头; append:添加响应头; type:响应类型; lastModified:返回为 Date, 如果存在; etag:设置缓存 |
API | 作用 |
---|---|
get | get方法 |
post | post方法 |
patch | patch方法 |
delete | delete方法 |
prefix | 配置公共路由路径 |
use | 将路由分层,同一个实例router中可以配置成不同模块 |
ctx.params | 获取动态路由参数 |
fs | 分割文件 |
API | 作用 |
---|---|
Schema | 数据模式,表结构的定义;每个schema会映射到mongodb中的一个collection,它不具备操作数据库的能力 |
model | schema生成的模型,可以对数据库的操作 |
model的操作database方法
API | 方法 |
---|---|
create/save | 创建 |
remove | 移除 |
delete | 删除一个 |
deleteMany | 删除多个 |
find | 查找 |
findById | 通过id查找 |
findOne | 找到一个 |
count | 匹配文档数量 |
update | 更新 |
updateOne | 更新一个 |
updateMany | 更新多个 |
findOneAndUpdate | 找到一个并更新 |
findByIdAndUpdate | 通过id查找并更新 |
findOneAndRemove | 找到一个并移除 |
replaceOne | 替换一个 |
watch | 监听变化 |
query查询API
API | 作用 |
---|---|
where | 指定一个 path |
equals | 等于 |
or | 或 |
nor | 不是 |
gt | 大于 |
lt | 小于 |
size | 大小 |
exists | 存在 |
within | 在什么之内 |
注:Query是通过Model.find()来实例化
aggregate(聚合)API
API | 作用 |
---|---|
append | 追加 |
addFields | 追加文件 |
limit | 限制大小 |
sort | 排序 |
注:aggregate=Model.aggregate()
更多详细API,请戳
8.react项目详情从项目中由浅入深的学习react
9.总结一个koa项目就是从koa-bodyparser来解析body,koa-router来分发和处理接口,mongose来操作database。入门就是so-easy!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/19519.html
摘要:插件开发前端掘金作者原文地址译者插件是为应用添加全局功能的一种强大而且简单的方式。提供了与使用掌控异步前端掘金教你使用在行代码内优雅的实现文件分片断点续传。 Vue.js 插件开发 - 前端 - 掘金作者:Joshua Bemenderfer原文地址: creating-custom-plugins译者:jeneser Vue.js插件是为应用添加全局功能的一种强大而且简单的方式。插....
摘要:搭建个人博客很久以来就特别想搭建一个,但是都是由于技术原因没有搭建起来。学习,并对代码进行重构。因为整个博客要完整的从项目构建到项目上线的确比较繁琐,这里只是给想要试试与一个代码参考。 vue+koa+mongodb 搭建个人博客 很久以来就特别想搭建一个blog,但是都是由于技术原因没有搭建起来。以前学习github的时候准备采用github与hexo来搭建。但是后来想了一下自己也在...
摘要:为了在项目中更好的使用来完成我们的业务,我们探究了性能暴力的成因以及如何更加合理的使用。的出现能够快速的完成系统的开发于拓展需求。不同的业务会导致不同的数据库使用情况。缓存类型根据情况选择或高速度也是有代价的。转自初探暴力美学 AUTH:PHILO version:2.0 showImg(http://7viiaq.com1.z0.glb.clouddn.com/u=14409196...
摘要:小练习作者本文首发博客功能基于进行登录,注册,留言的简单网站。所以这个小练习,从一个简单的方面入手,希望能给踩过同样多坑的同路人一点启发。就意味着要重新登录。的作用是进行进程守护,当你的意外的停止的时候,进行重启。 Vue+Koa+Mongodb 小练习 作者: Pawn 本文首发: Pawn博客 功能: 基于vue koa mongodb进行登录,注册,留言的简单网站。 体验地址: ...
摘要:前言笔者的前端开发已经有些时日了,对于一直保留着最初的恐惧,倘若一座不可跨越的高山,思前想后终于迈出最后一步,踏入了开拓自己视野的新视界,希望在看这篇文章的你可以一起跟我动手尝试。面向的下一代框架。由团队打造,特点优雅简洁灵活体积小。 showImg(https://segmentfault.com/img/bVbuorM?w=1514&h=568); 前言 笔者的前端开发已...
阅读 3479·2023-04-25 15:52
阅读 551·2021-11-19 09:40
阅读 2525·2021-09-26 09:47
阅读 985·2021-09-22 15:17
阅读 3508·2021-08-13 13:25
阅读 2149·2019-08-30 15:56
阅读 3436·2019-08-30 13:56
阅读 2073·2019-08-30 11:27