如何解决此问题?:如果!options.algorithms抛出新的错误“应该设置算法”;错误:应设置算法

问题描述

我正在通过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'] })