這是我的第一份博客毁菱,用于記錄自己正在開發(fā)的釘釘微應(yīng)用項(xiàng)目哭靖,以便于以后工作和自己開發(fā),希望自己以后能成為一流的開發(fā)人員欺冀。
開始
項(xiàng)目前端基于JS树绩,后端使用的nodejs。
這個項(xiàng)目讓我收獲的有:
1.熟悉JS使用
2.大致了解了koa框架的開發(fā)流程(希望以后能完整的開發(fā)一個koa項(xiàng)目供自己使用)
3.大致了解了jade模板引擎的使用方式脚猾,關(guān)于格式的縮進(jìn)葱峡,引擎的邏輯并沒有練習(xí)
4.釘釘?shù)母鞣NAPI調(diào)用
5.使用nodemon自動啟動nodejs(修改代碼)
Koa
Koa是非常輕量的框架,能夠直接使用各種中間件開始開發(fā)自己想要的后端龙助,網(wǎng)上文檔清晰,中文文檔豐富蛛芥,最初接觸Node直接開始試用sails提鸟,框架龐大甚至臃腫,但是確實(shí)能省不少搭建的事仅淑,但是沒有中文文檔并且網(wǎng)上的資源極少称勋,對于剛?cè)腴T后端的我簡直痛苦不堪,如果以后有人請教我node怎么學(xué)習(xí)涯竟,我一定推薦他現(xiàn)在敲一天node赡鲜,然后再從express或者koa入門。
Jade模板引擎
相較于EJS其實(shí)我更喜歡用EJS庐船,EJS更貼近HTML银酬,格式更清晰,更容易理解筐钟,不過Jade也有他自己的好處揩瞪,通過縮進(jìn)就能調(diào)節(jié)格式,有自己獨(dú)特的一套格式篓冲,如果熟練也能很快的開發(fā)李破,這次試用Jade的原因是因?yàn)獒斸敼俜浇o的demo用的是Jade,換成EJS后并不知道怎么把獲取到的數(shù)據(jù)導(dǎo)入到EJS模板里的最終又換回來了壹将,以后可以直接試試在<% var demo = _demo %>注入一個參數(shù)試試
nodemon
nodemon是一個后端的管理工具嗤攻,能夠在我修改代碼后自動重啟服務(wù)器,還有其他功能這次并沒有使用诽俯,最初使用這類工具的目的是妇菱,在回家后云端的服務(wù)器會自動關(guān)閉,這類工具能夠解決這個問題。(但是并沒有解決...)
釘釘微應(yīng)用開發(fā)
這次主要開發(fā)的任務(wù)是釘釘微應(yīng)用的開發(fā)恶耽,項(xiàng)目的目的是為了讓公司的業(yè)務(wù)結(jié)合在釘釘上密任,這樣業(yè)務(wù)更流暢清晰,方便管理人員及時獲取外勤人員的狀態(tài)偷俭,任務(wù)的動向與錯誤匯報浪讳。
應(yīng)用開發(fā)分為幾個步奏:
1.需要登錄釘釘管理員平臺申請應(yīng)用 (后臺地址什么用還不知道~负溪,首頁地址及微應(yīng)用的地址透揣,PC版的需要單獨(dú)開發(fā),現(xiàn)在只用了移動版本的)
1.首先在服務(wù)器端通過corpid(公司ID)和corpsecret(公司密碼)獲取到access_token侍咱。
2.再通過獲取到的access_token獲取到j(luò)sapi_ticket。
3.通過把獲取到的nonceStr(用于生成簽名的隨機(jī)串'abcdefg')密幔,timeStamp(時間 戳),url(decodeURIComponent(this.href)),ticket(jsapi_ticket)通過算法獲得標(biāo)簽signature楔脯。
4.將標(biāo)簽signature,nonceStr(用于生成簽名的隨機(jī)串'abcdefg')胯甩,timeStamp(時間戳)昧廷,corpid(公司ID)發(fā)送給自己前端,用來調(diào)用jsApi:dd.config()
直接對應(yīng)填寫相關(guān)數(shù)據(jù)即可
jsApiList是必須填寫的偎箫,你如果需要調(diào)用哪些API木柬,就要先填寫在這里,不然調(diào)用的時候會err
4.dd.ready()镜廉,當(dāng)釘釘api準(zhǔn)備好后弄诲,會執(zhí)行dd.ready,所以api應(yīng)該寫在這里面娇唯,不然可能會實(shí)現(xiàn)不了
服務(wù)端獲取到這個code,然后通過corpid(公司ID)和corpsecret(公司密碼)獲取到access_token
然后通過access_token和獲取到的code通過/user/getuserinfo獲取到用戶信息6.頁面跳轉(zhuǎn):頁面跳轉(zhuǎn)好像文檔里面沒有找到塔插,在官方給的demo里看到的dd.biz.util.openLink({ url: url });
直接使用openLink便可以實(shí)現(xiàn)頁面跳轉(zhuǎn)梗摇,跳轉(zhuǎn)到新的頁面還是要進(jìn)行dd.config({}),后臺要重新生成新的標(biāo)簽傳到新的頁面
其他都是業(yè)務(wù)上的邏輯了想许,如果有基礎(chǔ)上的更新以后可以繼續(xù)更新伶授,開發(fā)釘釘微應(yīng)用是基于前后端一體的項(xiàng)目断序,對自己之前各種知識算是一個匯總
12/19:更新免登
12/25:頁面跳轉(zhuǎn),后臺框架更新成sails
git地址:https://github.com/yhkevin93/node/tree/master/釘釘項(xiàng)目
sails版:https://github.com/yhkevin93/node/tree/master/釘釘項(xiàng)目sails