我是一个新学习者,我在中间件中面临这个问题,之前一切都工作正常,但在我请求之后,就会出现此错误,我只是尝试控制台记录标头中给出的令牌或在令牌上应用条件
这是确切的错误 ->
(node:14020) [MONGODB DRIVER] Warning: useNewUrlParser is a deprecated option: useNewUrlParser has no effect since
Node.js Driver version 4.0.0 and will be removed in the next major version
(Use `node --trace-warnings ...` to show where the warning was created)
(node:14020) [MONGODB DRIVER] Warning: useUnifiedTopology is a deprecated option: useUnifiedTopology has no effect
since Node.js Driver version 4.0.0 and will be removed in the next major version
listening on port: 4000
Connected to MongoDB Server
F:\Projects\SOCIAL-MEDIA\server\middlewares\requireUser.js:3
if(!req.headers || !req.headers.authorization || !req.header.authorization.startsWith('Bearer')){
^
TypeError: Cannot read properties of undefined (reading 'startsWith')
at module.exports (F:\Projects\SOCIAL-MEDIA\server\middlewares\requireUser.js:3:80)
at Layer.handle [as handle_request] (F:\Projects\SOCIAL-MEDIA\server\node_modules\express\lib\router\layer.js:95:5)
at next (F:\Projects\SOCIAL-MEDIA\server\node_modules\express\lib\router\route.js:149:13)
at Route.dispatch (F:\Projects\SOCIAL-MEDIA\server\node_modules\express\lib\router\route.js:119:3)
at Layer.handle [as handle_request] (F:\Projects\SOCIAL-MEDIA\server\node_modules\express\lib\router\layer.js:95:5)
at F:\Projects\SOCIAL-MEDIA\server\node_modules\express\lib\router\index.js:284:15
at Function.process_params (F:\Projects\SOCIAL-MEDIA\server\node_modules\express\lib\router\index.js:346:12)
at next (F:\Projects\SOCIAL-MEDIA\server\node_modules\express\lib\router\index.js:280:10)
at Function.handle (F:\Projects\SOCIAL-MEDIA\server\node_modules\express\lib\router\index.js:175:3)
at router (F:\Projects\SOCIAL-MEDIA\server\node_modules\express\lib\router\index.js:47:12)
并且我的失眠预览出现错误:从对等方接收数据时失败 这是名为 requireUser.js 的中间件文件的代码
module.exports =async(req,res,next)=>{
if(!req.headers || !req.headers.authorization || !req.header.authorization.startsWith('Bearer')){
return res.status(401).send("Authorization Is Required");
}
let accessToken= req.headers.authorization.split(" ")(1);
console.log(accessToken);
next();
}
我只是想控制台记录标头中给出的令牌或在令牌上应用条件
最后一个条件有错字:
header
应该是headers
if(
!req.headers ||
!req.headers.authorization ||
!req.headers.authorization.startsWith('Bearer')
){