-
Notifications
You must be signed in to change notification settings - Fork 15.8k
refactor(server): 使伺服器可以復用、更換廢棄函式 #1453
refactor(server): 使伺服器可以復用、更換廢棄函式 #1453
Conversation
我們需要 NCM API 的伺服器部分,但 app.js 目前的做法讓我們不太好單獨啟動伺服器。 我將 app.js 的伺服器部分抽成各個函數,並將原有 會 blocking 的函數更改為非同步函式。 這樣不僅能最大化善用 Node.js 的 Event Loop, 亦能提升未來維護的程式碼易讀性。
Express 4.x 以上版本已經內建 body-parser。
This pull request is being automatically deployed with Vercel (learn more). netease-cloud-music-api – ./docs🔍 Inspect: https://vercel.com/binaryify/netease-cloud-music-api/ABA9nHT3zAQcN2zDB2dz1nNDtwDb netease-cloud-music-api-binaryify – ./🔍 Inspect: https://vercel.com/binaryify/netease-cloud-music-api-binaryify/EFpR5PEi6LraDBk8LTFYAotrWzKk |
自行維護 require 名單以相容 Webpack。
I'm going to replace the function of "main.js".
server.js 有 main.js 原本的功能 (getModulesDefinitions) BREAKING CHANGES: 所有使用到這個 lib 的應用程式 ,皆需更改為 .getModulesDefinitions()。
r? @Binaryify |
also: - docs: tells user to clone repo recursively - feat(ci): clone recursively - feat(ncmapi): backport my change Binaryify/NeteaseCloudMusicApi#1453 - refactor: rewrite startNeteaseMusicApi()
可以的兄弟,不过今天有点忙,明天我review下 |
为了兼容以前nodejs调用模块的写法 |
👌 那你這樣改回來的話就沒 breaking changes 了,可以降回 4.x |
also: - docs: tells user to clone repo recursively - feat(ci): clone recursively - feat(ncmapi): backport my change Binaryify/NeteaseCloudMusicApi#1453 - refactor: rewrite startNeteaseMusicApi()
我們需要 NCM API 的伺服器部分,但 app.js 目前的做法讓我們不太好單獨啟動伺服器。因此,我將 app.js 的伺服器部分抽成各個函數,並將原有會 blocking 的函數更改為非同步函式。這樣不僅能最大化善用 Node.js 的 Event Loop,亦能提升未來維護的程式碼易讀性。
同時,有鑒於 Express 4.x 以上版本已經內建 body-parser,我將
bodyParser
更改為內建函數。注意:有 breaking changes:有鑒於原本
main.js
的功能已經整合進server.js
,我直接將 main 切換成main.js
的超集——server.js
。但所有使用main.js
原 API 的呼叫者都 必須 改呼叫getModulesDefinitions()
(回傳格式稍有不同)。