最近寫了一個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項目,也歡迎指正~~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19416.html
本文收集學習過程中使用到的資源。 持續更新中…… 項目地址 https://github.com/abc-club/f... 目錄 vue react react-native Weex typescript Taro nodejs 常用庫 css js es6 移動端 微信公眾號 小程序 webpack GraphQL 性能與監控 高質文章 趨勢 動效 數據結構與算法 js core 代碼規范...
閱讀 1862·2023-04-26 01:58
閱讀 1989·2019-08-30 11:26
閱讀 2733·2019-08-29 12:51
閱讀 3499·2019-08-29 11:11
閱讀 1187·2019-08-26 11:54
閱讀 2102·2019-08-26 11:48
閱讀 3485·2019-08-26 10:23
閱讀 2389·2019-08-23 18:30