最近写了一个node项目,主要使用到的技术有:
koa2 // nodejs 框架 koa-router // koa路由 graphql // 查询api typescript // 强类型语言 jwt // 授权 typeorm // typescript的一个orm mysql2 // 内容数据库 mongodb // 日志存储数据库 redis // 服务器缓存
项目结构:
conf目录(配置项目录,包含db配置、服务启动端口配置、服务启动入口文件server.ts) release目录(编译后目录) src(项目主要源码目录) controllers(控制器) core(核心扩展) database(db连接) entities(mysql/mongodb的数据模型) middlewares(koa中间件) models(其他一些数据的模型) routes(路由) schema(graphql的schame) utils(辅助库目录) app.ts项目入口文件
该项目使用了koa的路由,可以同时支持普通RESTful和graphql两种类型api
目前授权使用jwt模式,为了登出,也是用了redis辅助保存用户会话信息(醉了...)
在graphql项目中,只需要后端定义好返回数据模型,前端按照自己需要的数据去查询接口,返回无冗余数据,非常简洁方便。
graphql定义及各种各样的好处就不多说了,直接看实战结果吧。
GraphQL示例
// 查询 { count articles{ list{id,title} meta{page,page_size} } } // 结果 { "data": { "count": 3, "articles": { "list": [ { "id": "594459f050bcc2abbbf5116ed301b002", "title": "Laravel 5.6 是继 5.5 之后 Laravel 官方发布002" }, { "id": "594459f050bcc2abbbf5116ed301b003", "title": "Laravel 5.6 是继 5.5 之后 Laravel 官方发布003" }, ... ], "meta": { "page": 1, "total": 24 } } } }
前端异步请求截图:
请求数据
返回结果
从结果看,返回的数据完全是按照自己的需要进行查询返回的
项目地址:https://github.com/xpioneer/k...
目前只是初版,还未完善整个工程项目,整体架构还需要调整,但可以跑通整个流程了!
欢迎star项目,也欢迎指正~~
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/19416.html
本文收集学习过程中使用到的资源。 持续更新中…… 项目地址 https://github.com/abc-club/f... 目录 vue react react-native Weex typescript Taro nodejs 常用库 css js es6 移动端 微信公众号 小程序 webpack GraphQL 性能与监控 高质文章 趋势 动效 数据结构与算法 js core 代码规范...
阅读 1805·2023-04-26 01:58
阅读 1948·2019-08-30 11:26
阅读 2683·2019-08-29 12:51
阅读 3458·2019-08-29 11:11
阅读 1138·2019-08-26 11:54
阅读 2060·2019-08-26 11:48
阅读 3436·2019-08-26 10:23
阅读 2356·2019-08-23 18:30