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

Posted

技术标签:

【中文标题】TypeError:回调不是函数,“node_modules\\jsonwebtoken\\sign.js:101:14)”【英文标题】: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吗?

【问题讨论】:

【参考方案1】:

jwt.sign 基本接受四个参数

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于TypeError:回调不是函数,“node_modules\jsonwebtoken\sign.js:101:14)”的主要内容,如果未能解决你的问题,请参考以下文章

Uncaught TypeError 不是 AJAX 回调函数

未捕获的 TypeError:回调不是 Vuejs 上的函数

TypeError: jQueryxxxxxx 不是函数

NetworkStatus0 = TypeError:“未定义”不是函数

Mongoose 回调应用不是一个函数

“TypeError:在 OAuth 2.0 回调请求期间需要一个类似字节的对象,而不是 'str'”