最近寫了一個node項目,主要使用到的技術(shù)有:
koa2 // nodejs 框架 koa-router // koa路由 graphql // 查詢api typescript // 強類型語言 jwt // 授權(quán) typeorm // typescript的一個orm mysql2 // 內(nèi)容數(shù)據(jù)庫 mongodb // 日志存儲數(shù)據(jù)庫 redis // 服務(wù)器緩存
項目結(jié)構(gòu):
conf目錄(配置項目錄,包含db配置、服務(wù)啟動端口配置、服務(wù)啟動入口文件server.ts) release目錄(編譯后目錄) src(項目主要源碼目錄) controllers(控制器) core(核心擴展) database(db連接) entities(mysql/mongodb的數(shù)據(jù)模型) middlewares(koa中間件) models(其他一些數(shù)據(jù)的模型) routes(路由) schema(graphql的schame) utils(輔助庫目錄) app.ts項目入口文件
該項目使用了koa的路由,可以同時支持普通RESTful和graphql兩種類型api
目前授權(quán)使用jwt模式,為了登出,也是用了redis輔助保存用戶會話信息(醉了...)
在graphql項目中,只需要后端定義好返回數(shù)據(jù)模型,前端按照自己需要的數(shù)據(jù)去查詢接口,返回?zé)o冗余數(shù)據(jù),非常簡潔方便。
graphql定義及各種各樣的好處就不多說了,直接看實戰(zhàn)結(jié)果吧。
GraphQL示例
// 查詢 { count articles{ list{id,title} meta{page,page_size} } } // 結(jié)果 { "data": { "count": 3, "articles": { "list": [ { "id": "594459f050bcc2abbbf5116ed301b002", "title": "Laravel 5.6 是繼 5.5 之后 Laravel 官方發(fā)布002" }, { "id": "594459f050bcc2abbbf5116ed301b003", "title": "Laravel 5.6 是繼 5.5 之后 Laravel 官方發(fā)布003" }, ... ], "meta": { "page": 1, "total": 24 } } } }
前端異步請求截圖:
請求數(shù)據(jù)
返回結(jié)果
從結(jié)果看,返回的數(shù)據(jù)完全是按照自己的需要進(jìn)行查詢返回的
項目地址:https://github.com/xpioneer/k...
目前只是初版,還未完善整個工程項目,整體架構(gòu)還需要調(diào)整,但可以跑通整個流程了!
歡迎star項目,也歡迎指正~~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/19416.html
摘要:建立該倉庫的目的主要是整理收集學(xué)習(xí)資源,統(tǒng)一管理,方便隨時查找。目前整合的學(xué)習(xí)資源只是前端方向的,可能會存在漏缺比較好的資源,需要慢慢的完善它,歡迎在該上補充資源或者提供寶貴的建議。 說明 平時的學(xué)習(xí)資源都比較的凌亂,看到好的資源都是直接收藏在瀏覽器的收藏夾中,這樣其實并不方便,整理在云筆記上,也不方便查看修改記錄,索性就整理在 github 上并開源出來,希望幫助大家能夠更快的找到需...
本文收集學(xué)習(xí)過程中使用到的資源。 持續(xù)更新中…… 項目地址 https://github.com/abc-club/f... 目錄 vue react react-native Weex typescript Taro nodejs 常用庫 css js es6 移動端 微信公眾號 小程序 webpack GraphQL 性能與監(jiān)控 高質(zhì)文章 趨勢 動效 數(shù)據(jù)結(jié)構(gòu)與算法 js core 代碼規(guī)范...
閱讀 1865·2023-04-26 01:58
閱讀 1991·2019-08-30 11:26
閱讀 2735·2019-08-29 12:51
閱讀 3501·2019-08-29 11:11
閱讀 1190·2019-08-26 11:54
閱讀 2104·2019-08-26 11:48
閱讀 3486·2019-08-26 10:23
閱讀 2391·2019-08-23 18:30