原创 GitLab CI/CD 在 Node.js 項目中的實踐

近期在按照業務劃分項目時,我們組被分了好多的項目過來,大量的是基於 Node.js 的,也是我們組持續在使用的語言。 現有流程中的一些問題 在維護多個項目的時候,會暴露出一些問題: 如何有效的使用 測試用例 如何有效的使用 ESLint

原创 Node程序debug小記

有時候,所見並不是所得,有些包,你需要去翻他的源碼才知道爲什麼會這樣。 背景 今天調試一個程序,用到了一個很久之前的NPM包,名爲formstream,用來將form表單數據轉換爲流的形式進行接口調用時的數據傳遞。 這是一個幾年前的項目

原创 2018年終總結

轉眼間,2018年就要過去了,又可以來總結一年的得失了。 今年可以說是充滿了收穫與挑戰的一年,一年的工作基本上是圍繞着node來進行的,前端相關的東西是做的越來越少。 工作相關的 今年應該說是換工位頻率非常高的一年,東西搬來搬去的好多次

原创 基於遊標的分頁接口實現

分頁接口的實現,在偏業務的服務端開發中應該很常見,PC時代的各種表格,移動時代的各種feed流、timeline。 出於對流量的控制,或者用戶的體驗,大批量的數據都不會直接返回給客戶端,而是通過分頁接口,多次請求返回數據。 而最常用

原创 瞭解可執行的NPM包

NPM是Node.js的包管理工具,隨着Node.js的出現,以及前端開發開始使用gulp、webpack、rollup以及其他各種優秀的編譯打包工具(大多數採用Node.js來實現),大家都開始接觸到一些Node.js,發現了使用NPM來

原创 util.promisify 的那些事兒

util.promisify是在node.js 8.x版本中新增的一個工具,用於將老式的Error first callback轉換爲Promise對象,讓老項目改造變得更爲輕鬆。 在官方推出這個工具之前,民間已經有很多類似的工具了,比

原创 如何編寫 Typescript 聲明文件

使用TypeScript已經有了一段時間,這的確是一個好東西,雖說在使用的過程中也發現了一些bug,不過都是些小問題,所以整體體驗還是很不錯的。 TypeScript之所以叫Type,和它的強類型是分不開的,這也是區別於JavaScri

原创 async語法升級踩坑小記

從今年過完年回來,三月份開始,就一直在做重構相關的事情。 就在今天剛剛上線了最新一次的重構代碼,希望高峯期安好,接近半年的Node.js代碼重構。 包含從callback+async.waterfall到generator+co,統統升

原创 適配器在JavaScript中的體現

適配器設計模式在JavaScript中非常有用,在處理跨瀏覽器兼容問題、整合多個第三方SDK的調用,都可以看到它的身影。 其實在日常開發中,很多時候會不經意間寫出符合某種設計模式的代碼,畢竟設計模式就是老前輩們總結提煉出來的一些能夠幫助提

原创 使用TS+Sequelize實現更簡潔的CRUD

如果是經常使用Node來做服務端開發的童鞋,肯定不可避免的會操作數據庫,做一些增刪改查(CRUD,Create Read Update Delete)的操作,如果是一些簡單的操作,類似定時腳本什麼的,可能就直接生寫SQL語句來實現功能了,而

原创 使用 TypeScript 改造構建工具及測試用例

最近的一段時間一直在搞TypeScript,一個巨硬出品、賦予JavaScript語言靜態類型和編譯的語言。 第一個完全使用TypeScript重構的純Node.js項目已經上線並穩定運行了。 第二個前後端的項目目前也在重構中,關於前端基於

原创 koa源碼閱讀[3]-koa-send與它的衍生(static)

koa源碼閱讀的第四篇,涉及到向接口請求方提供文件數據。 第一篇:koa源碼閱讀-0第二篇:koa源碼閱讀-1-koa與koa-compose第三篇:koa源碼閱讀-2-koa-router 處理靜態文件是一個繁瑣的事情,因爲靜態文件都

原创 TypeScript在node項目中的實踐

TypeScript在node項目中的實踐 TypeScript可以理解爲是JavaScript的一個超集,也就是說涵蓋了所有JavaScript的功能,並在之上有着自己獨特的語法。最近的一個新項目開始了TS的踩坑之旅,現分享一些可以借鑑的

原创 Javascript裝飾器的妙用

最近新開了一個Node項目,採用TypeScript來開發,在數據庫及路由管理方面用了不少的裝飾器,發覺這的確是一個好東西。裝飾器是一個還處於草案中的特性,目前木有直接支持該語法的環境,但是可以通過 babel 之類的進行轉換爲舊語法來實現

原创 koa源碼閱讀[2]-koa-router

koa源碼閱讀[2]-koa-router 第三篇,有關koa生態中比較重要的一箇中間件:koa-router 第一篇:koa源碼閱讀-0第二篇:koa源碼閱讀-1-koa與koa-compose koa-router是什麼 首先,因爲