内容简介:node.js的出现前端已经可以用js一把梭,从前端写到后台。
序列文章
前言
node.js的出现前端已经可以用js一把梭,从前端写到后台。
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.koa的主要API
| 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:设置缓存 |
5.koa-router主要API
| API | 作用 |
|---|---|
| get | get方法 |
| post | post方法 |
| patch | patch方法 |
| delete | delete方法 |
| prefix | 配置公共路由路径 |
| use | 将路由分层,同一个实例router中可以配置成不同模块 |
| ctx.params | 获取动态路由参数 |
| fs | 分割文件 |
6.mongoose主要API
| 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, 请戳
7.react项目详情
8.总结
一个koa项目就是从koa-bodyparser来解析body,koa-router来分发和处理接口,mongose来操作database。入门就是so-easy!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Amazon Web Services
James Murty / O'Reilly Media / 2008-3-25 / USD 49.99
Building on the success of its storefront and fulfillment services, Amazon now allows businesses to "rent" computing power, data storage and bandwidth on its vast network platform. This book demonstra......一起来看看 《Programming Amazon Web Services》 这本书的介绍吧!