【问题标题】:TypeError: JwtStrategy is not a constructor; NodeJSTypeError: JwtStrategy 不是构造函数;节点JS
【发布时间】: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;

标签: javascript node.js mongodb jwt


【解决方案1】:

您在require 语句Stategy 中有错字。

改变

const JwtStrategy = require('passport-jwt').Stategy;

const JwtStrategy = require('passport-jwt').Strategy;

【讨论】:

    猜你喜欢
    • 2021-09-28
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多