TypeError: JwtStrategy 不是构造函数;节点JS
Posted
技术标签:
【中文标题】TypeError: JwtStrategy 不是构造函数;节点JS【英文标题】:TypeError: JwtStrategy is not a constructor; NodeJS 【发布时间】:2018-09-21 06:08:30 【问题描述】:我正在尝试制作 MEAN Stack(Nodejs、Mongo、Angular 应用程序),现在我正在尝试制作 API 身份验证和令牌。 我正在关注本教程https://www.youtube.com/watch?v=6pdFXmTfkeE&t=185s,我的 passport.js 现在看起来像这样:
passport.js
const JwtStrategy = require('passport-jwt').Stategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const User = require('../models/user');
const config = require('../config/database');
module.exports = function (passport)
let opts = ;
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme("jwt");
passport.use(new JwtStrategy(opts, (jwt_payload, done) =>
User.getUserById(jwt_payload.data._id, (err, user) =>
if (err)
return done(err, false);
if (user)
return done(null, user);
else
return done(null, false);
);
));
我收到下一个错误:
TypeError: JwtStrategy 不是构造函数 在 module.exports (C:\Users\dan.diaconu\MakeIT\api\config\passport.js:10:18) 在对象。 (C:\Users\dan.diaconu\MakeIT\api\app.js:28:29) 在 Module._compile (module.js:652:30) 在 Object.Module._extensions..js (module.js:663:10) 在 Module.load (module.js:565:32) 在 tryModuleLoad (module.js:505:12) 在 Function.Module._load (module.js:497:3) 在 Function.Module.runMain (module.js:693:10) 启动时(bootstrap_node.js:188:16) 在 bootstrap_node.js:609:3
有什么想法吗?谢谢! :)
【问题讨论】:
替换:const Strategy:JwtStrategy, ExtractJwt = require('passport-jwt');
而不是:const JwtStrategy = require('passport-jwt').Stategy; const ExtractJwt = require('passport-jwt').ExtractJwt;
【参考方案1】:
您在require
语句Stategy
中有错字。
改变
const JwtStrategy = require('passport-jwt').Stategy;
到
const JwtStrategy = require('passport-jwt').Strategy;
【讨论】:
以上是关于TypeError: JwtStrategy 不是构造函数;节点JS的主要内容,如果未能解决你的问题,请参考以下文章
NestJS JwtStrategy 使用 configService 传递密钥
NestJs + Passport - JWTStrategy 永远不会被 RS256 令牌调用
TypeError:“TypeError:函数名称不是 HTMLButtonElement.onclick (/:2:54) 处的函数”