问题描述
我正在通过PACKT平台(https://github.com/PacktPublishing/Full-Stack-React-Projects-Second-Edition/tree/master/Chapter03%20and%2004/mern-skeleton)了解有关MERN的信息,但是由于发现下一个错误,所以我无法运行代码。
if (!options.algorithms) throw new Error('algorithms should be set');
Error: algorithms should be set
at module.exports (/home/npalaciosv/Documents/Full Stack React Projects/Mern_Projects/Chapter3/node_modules/express-jwt/lib/index.js:22:34)
at Module.eval (webpack:///./server/controllers/auth.controller.js?:65:73)
at eval (webpack:///./server/controllers/auth.controller.js?:111:30)
at Module../server/controllers/auth.controller.js (/home/npalaciosv/Documents/Full Stack React Projects/Mern_Projects/Chapter3/dist/server.generated.js:312:1)
at __webpack_require__ (/home/npalaciosv/Documents/Full Stack React Projects/Mern_Projects/Chapter3/dist/server.generated.js:21:30)
at Module.eval (webpack:///./server/routes/user.routes.js?:5:86)
at eval (webpack:///./server/routes/user.routes.js?:43:30)
at Module../server/routes/user.routes.js (/home/npalaciosv/Documents/Full Stack React Projects/Mern_Projects/Chapter3/dist/server.generated.js:396:1)
at __webpack_require__ (/home/npalaciosv/Documents/Full Stack React Projects/Mern_Projects/Chapter3/dist/server.generated.js:21:30)
at Module.eval (webpack:///./server/express.js?:17:77)
at eval (webpack:///./server/express.js?:133:30)
at Module../server/express.js (/home/npalaciosv/Documents/Full Stack React Projects/Mern_Projects/Chapter3/dist/server.generated.js:348:1)
at __webpack_require__ (/home/npalaciosv/Documents/Full Stack React Projects/Mern_Projects/Chapter3/dist/server.generated.js:21:30)
at eval (webpack:///./server/server.js?:3:66)
at Module../server/server.js (/home/npalaciosv/Documents/Full Stack React Projects/Mern_Projects/Chapter3/dist/server.generated.js:408:1)
at __webpack_require__ (/home/npalaciosv/Documents/Full Stack React Projects/Mern_Projects/Chapter3/dist/server.generated.js:21:30)
[nodemon] app crashed - waiting for file changes before starting...
我已经在其他类似的出版物中阅读了有关此主题的信息,发现解决方案是修复此代码:
expressJwt({ secret: process.env.JWT_SECRET,algorithms: ['RS256'] })
@Tugayİlik回复
解决方法
我已经检查了您的文件。请转到“服务器”文件夹,=>“控制器”文件夹=>“ auth.controller.js”文件;然后从55-58行向下滚动,您会看到“
const requireSignin = expressJwt({
secret: config.jwtSecret,userProperty: 'auth'
})
使用以下方法进行更改:
const requireSignin = expressJwt({
secret: config.jwtSecret,userProperty: 'auth',algorithms: ['HS256'],});
请告诉我它是否有效。一切顺利。
,事实是,使用您在此处放置的代码,任何人都很难帮助您确定代码的确切位置。
但是,就在“错误:应该设置算法”之前,您将看到类似以下内容:“ C:\ Users \ personsName \ Desktop \ folderName \ subFolderName \ fileName.js:65” 您只需注意subFolderName => fileName.js;然后,“:65”会显示错误所在的行或最近的行(请注意,它一定不是上面显示的65行,我只是用它作了说明)。
同样,通常应在您要查找的“ auth.js”文件之一中。
事实是您可能出现该错误的原因是因为代码中必须使用algorithm参数,而默认算法是HS256。
因此您应该粘贴的代码将是:
expressJwt({ secret: process.env.JWT_SECRET,algorithms: ['HS256'] })