从项目中由浅入深的学习koa-mongodb4

56次阅读

共计 2216 个字符,预计需要花费 6 分钟才能阅读完成。

序列文章

从项目中由浅入深的学习 vue, 微信小程序和快应用 (1)
从项目中由浅入深的学习 react (2)
从项目中由浅入深的学习 typescript (3)

前言

node.js 的出现前端已经可以用 js 一把梭, 从前端写到后台。
本文从后台利用 node 的框架 koa+mongodb 实现数据的增删改查和注册接口,前端利用 umi + dva +ant-design-pro 来实现数据渲染。实现一个小全栈 project, 就是 so-easy

1. 效果图


react-koa 全栈项目,欢迎 star

2. 技术栈

koa:node 框架
koa-bodyparser:解析 body 的中间件
koa-router:解析 router 的中间件
mongoose:基于 mongdodb 的数据库框架,操作数据
nodemon:后台服务启动热更新

3. 项目目录

├── 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 // 基础配置信息

4. 项目启动步骤

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 里面修改

5.koa 的主要 API

API作用
new koa()得到 koa 实例
usekoa 的属性, 添加中间件
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: 设置缓存

6.koa-router 主要 API

API作用
getget 方法
postpost 方法
patchpatch 方法
deletedelete 方法
prefix配置公共路由路径
use将路由分层, 同一个实例 router 中可以配置成不同模块
ctx.params获取动态路由参数
fs分割文件

7.mongoose 主要 API

API作用
Schema数据模式, 表结构的定义;每个 schema 会映射到 mongodb 中的一个 collection,它不具备操作数据库的能力
modelschema 生成的模型,可以对数据库的操作

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!

正文完
 0