>在我的索引中.js我以这样的方式给出了路由。
app.use('/users/:id/transactions',transactionRoutes)
内部事务路由
router.get('/:txnHash',transactionController.getTransaction);
所以对'/users/:id/transactions/:txnHash'的请求将来到上面的路由。
内部事务控制器
module.exports.getTransaction = (req,res) => {
let typeOfTransaction = req.query.type,
userId = req.params.id,
txnHash = req.params.txnHash;
}
在这里,我能够访问 txnHash 参数,但 userId 参数显示未定义。我认为这是因为路由的 :id 部分是在索引.js中指定的。有没有办法在不改变路线的情况下解决这个问题。
API 请求是
获取 'apiurl/users/42342234/transactions/234bh2428b354hjcs'
在TransactionRoutes
中,您需要添加mergeParams
,这将保留req.params
值。
var router = express.Router({mergeParams: true});
在你的之前,
router.get('/:txnHash',transactionController.getTransaction);
希望这有帮助!