套件組合技經驗:JSON Server
前陣子因為在開發環境需要有個簡易又不會太粗糙的 mock server,所以快速用短短的時間把幾個套件組合串起來,成為基本可用的迷你 project,最主要還是拜豐富 NodeJS 的生態系所賜,很多東西都有現成可用幾乎不用多寫幾行程式碼,原則上就是可以推到開發環境。 一開始先找到最熱門的 json server 就是 typicode 的專案,跑起來基本上已經符合需求,所以從這邊開始來組合。 如果是用程式碼方式建立 json server 來做客製化,其實骨子裡就是 express web framework,所以用法都是一樣: const https = require("https"); const devcert = require("devcert"); const jsonServer = require("json-server"); const server = jsonServer.create(); server.use(jsonServer.defaults()); server.use(jsonServer.rewriter(require("./routes.json"))); server.use(jsonServer.router("api.json")); async function start() { let ssl = await devcert.certificateFor("api.dev"); https.createServer(ssl, server).listen(8443); } start(); 開發環境希望也是走 HTTPS 方式所以用到 devcert 掛了一個自簽的開發用憑證就可以跑 HTTPS 了,如上幾乎就是開箱即用的 server。 由於需要 db.json 檔裡面就是擺好被視為資料庫的 JSON 內容,然後依 request 的 HTTP method 進行資料的 CRUD,但也因為這個很棒的特性所以為了我自己的需求只好魔改原本程式變成 json-server-deformation。...