已弃用req.param,如何正确获取URL查询参数access_token?
正确获取URL查询参数中access_token的方法
你这是把路由参数和查询参数搞混啦!你的access_token是放在URL的查询字符串(?后面的部分)里的,不属于路由路径中的参数,所以用req.params肯定拿不到。
正确的获取方式
直接用req.query对象来获取查询参数就可以了:
const accessToken = req.query.access_token;
为什么之前的方法都不行?
req.params('access_token'):req.params本身是一个对象,不是函数,所以调用它会直接报错req.params is not a function。req.params.access_token:req.params是用来捕获路由路径里的参数的,比如你的路由如果是/api/v1/users/:userId/updateHome,那req.params.userId才能拿到对应的值,查询字符串里的参数不属于这个范畴,自然返回undefined。- 被弃用的
req.param():它之前是个“万能”方法,会同时从req.params、req.body、req.query里找参数,但因为逻辑不够明确,容易引发意外问题,所以被官方弃用了,现在推荐直接用对应属性获取参数。
内容的提问来源于stack exchange,提问作者jdotdoe
相关产品推荐
相关产品推荐

