javascript - 无法在controllerFunction节点js中获取url参数
问题描述
在我的 index.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 参数显示 undefined。我认为这是因为路由的 :id 部分是在 index.js 中指定的。有什么方法可以在不改变路线的情况下解决这个问题。
API 请求是
获取'apiurl/users/42342234/transactions/234bh2428b354hjcs'
解决方案
在您的TransactionRoutes
中,您需要添加mergeParams
将保留这些req.params
值的内容。
var router = express.Router({mergeParams: true});
在你之前,
router.get('/:txnHash',transactionController.getTransaction);
希望这可以帮助!
推荐阅读
- pytorch - RuntimeError: 预期类型 torch.cuda.FloatTensor 但得到了 torch.FloatTensor
- node.js - 为什么 NPM 在本地工作,但不在 Docker 上?
- azure - 启用防火墙时将 ADLS Gen2 挂载到 Databricks
- python-3.x - 如何修复“无法打开 libmsodbcsql-17.3.so.1.1”
- javascript - some() 方法返回的 undefined
- jquery - Ajax成功没有设置变量的值
- php - 数组按单词中的值排序
- r - PCA 后如何计算 T2 Hotelling?
- r - R 中 rfm 包中的“rfm_table_order”函数,返回一个小标题。但 tibble 输出仅在控制台中可见,无法在 R 中查看或导出
- nginx - Nginx 将所有 www 重定向到 @