无法获取控制器内的 url 参数函数节点 js



>在我的索引中.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);

希望这有帮助!

最新更新