在我的index.js中,我以这种方式进行了路由。
app.use('/users/:id/transactions',transactionRoutes)
内部交易路线
router.get('/:txnHash',transactionController.getTransaction);
因此对'/ users /:id / transactions /:txnHash'的请求将到达上述路线。
内部transactionController
module.exports.getTransaction = (req,res) => {
let typeOfTransaction = req.query.type,
userId = req.params.id,
txnHash = req.params.txnHash;
}
在这里,我可以访问txnHash参数,但userId参数显示为未定义。我认为这是因为路由的:id部分是在index.js中指定的。有什么方法可以解决此问题而无需更改路由。
API请求为
获取'apiurl / users / 42342234 / transactions / 234bh2428b354hjcs'
答案 0 :(得分:2)
您需要在TransactionRoutes
中添加mergeParams
,以保留req.params
的值。
var router = express.Router({mergeParams: true});
在您之前,
router.get('/:txnHash',transactionController.getTransaction);
希望这会有所帮助!