[英]Get parameter from previous route handler in express js
說我有file1.js :
import Router from "express-promise-router";
export const router1 = Router();
router1.get("/", async (req, res) => {
// I want to get here :id from router2 in file2
})
和file2.js (為簡單起見在同一目錄中):
import Router from "express-promise-router";
import { router1 } from "./file1";
export const router2 = Router();
router2.use("/:id/path", router1);
我想在file1.js 中使用file2.js中的/:id
(請參閱我在示例代碼中的評論)。
我怎樣才能做到這一點? 換句話說,我怎樣才能在路由器鏈中滲透'/:something'
參數?
注意 - 這不起作用:
router1.get("/", async (req, res) => {
const { params: {id} } = req;
})
我找到了答案。 來自express api :
所以應該在聲明路由器處理程序時添加選項mergeParams
設置為true
。
一般來說: const router = express.Router({mergeParams: true});
.
對於file1.js 中問題的示例代碼:
import Router from "express-promise-router";
export const router1 = Router({mergeParams: true});
router1.get("/", async (req, res) => {
const { params: {id} } = req; // now this works
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.