Javascript router.get不带参数,但请求参数
我正在尝试使用expressnodejs和JWT。以下是我所经历的源代码: 我保护所有路由,但我在jwt.js文件中声明的路由除外Javascript router.get不带参数,但请求参数,javascript,node.js,express,jwt,express-jwt,Javascript,Node.js,Express,Jwt,Express Jwt,我正在尝试使用expressnodejs和JWT。以下是我所经历的源代码: 我保护所有路由,但我在jwt.js文件中声明的路由除外 “/trial”url不受保护。控制器位于trial.controller.js文件中。当我在postman中点击url时,使用get和post方法,并且没有任何身份验证(No auth),我得到了我期望的结果 但是,当我点击'/users/testdata'时,同样的事情不会发生。它不受保护,但是如果我用get方法点击它,并且没有任何身份验证,它将返回error
“/trial”
url不受保护。控制器位于trial.controller.js
文件中。当我在postman中点击url时,使用get
和post
方法,并且没有任何身份验证(No auth
),我得到了我期望的结果'/users/testdata'
时,同样的事情不会发生。它不受保护,但是如果我用get
方法点击它,并且没有任何身份验证,它将返回error 500
,并在postman中显示消息“cannotread property'sub'”of undefined“
。但是,当我用post
方法点击它时,我得到了我所期望的get
方法有什么问题
有关完整代码,请参见上面的链接。任何帮助对我都很重要。谢谢大家! 出现问题的原因是路由
router.get('/:id',getById)代码>在路由router.get('/testdata',getTest)之前定义代码>。因此,当您对/testdata
路由执行请求时,它由/:id
路由处理,该路由需要身份验证才能工作,并使用currentUser.sub
属性,尽管currentUser
变量当前未定义
只要把订单从
router.get('/:id', getById);
router.get('/testdata', getTest);
到
哦,天哪,多么愚蠢的错误啊。这就是为什么我喜欢编程。谢谢你,乔治!
router.get('/testdata', getTest);
router.get('/:id', getById);