【问题标题】:TypeError: callback is not a function, "node_modules\jsonwebtoken\sign.js:101:14)"TypeError:回调不是函数,“node_modules\jsonwebtoken\sign.js:101:14)”
【发布时间】:2020-07-17 11:25:46
【问题描述】:

当我在 Postman 中执行注册操作时,控制台中出现以下错误:

错误:

TypeError:回调不是函数, node_modules\jsonwebtoken\sign.js:101:14)

问题出在这一行:

const token = jwt.sign({name, email, password}, process.env.JWT_SECRET, process.env.JWT_ACCOUNT_ACTIVATION, {expiresIn: '10m'});

控制器/身份验证

const User = require('../models/user');
const jwt = require('jsonwebtoken');

exports.signup =  (req, res) => {
    const {name, email, password} = req.body;

    User.findOne({email}).exec((err, user) => {
        if (user) {
            return res.status(400).json({
                error: "Email is taken"
            })
        }

        const token = jwt.sign({name, email, password}, process.env.JWT_SECRET, process.env.JWT_ACCOUNT_ACTIVATION, {expiresIn: '10m'});
    });
};

更新

当我删除process.env.JWT_SECRET 时,它起作用了。我必须使用process.env.JWT_SECRET吗?

【问题讨论】:

    标签: javascript node.js express jwt


    【解决方案1】:

    jwt.sign 基本接受四个参数

    • 有效载荷
    • 秘密
    • 选项
    • 回调函数

    如果您在这种情况下更改顺序,您将收到此错误

    【讨论】:

      【解决方案2】:

      用 process.env.JWT_ACCOUNT 交换 process.env.JWT_SECRET 的位置,反之亦然

      【讨论】:

        猜你喜欢
        • 2018-01-22
        • 2018-06-05
        • 2022-10-16
        • 2017-03-28
        • 2016-10-25
        • 2018-09-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多