我將整個 API 的一部分拆分為單獨的子路由,即(針對此問題簡化了代碼)
const mainRouter = express.Router();
const bananaRouter = express.Router();
const appleRouter = express.Router();
bananaRouter.get('/banana/hello', (req, res) => { /* ... */ });
mainRouter.all('/banana/*', bananaRouter);
mainRouter.all('/apple/*', appleRouter);
這有效。但是我不想在每條路線中都指定完整的“/banana/hello”,而更喜歡“/hello”。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
使用.use()與替代路徑的前綴(無通配符).all()。 .use()會自動匹配的路徑前綴沒有通配符,而.get()并.all()不會,這將然后設定你的路由器更好。因此,請執行以下操作來注冊路由器:
// send all /banana prefixed urls to the bananaRouter
mainRouter.use('/banana', bananaRouter);
然后,在該路由器內部,您不使用/banana路徑的一部分:
// will match /banana/hello
bananaRouter.get('/hello', (req, res) => { /* ... */ });
通常,您將.use()用于路由器和其他中間件,而不是.all().
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312247.html
上一篇:OpenCV的影像通道操作
