将回调作为函数参数传递

时间:2018-09-18 15:24:31

标签: javascript node.js jwt

我在使用回调时遇到了麻烦,无法弄清楚这是否实际上是将回调函数作为参数传递的正确方法。请帮帮我。以下是我的代码段

服务模块

jwt.signToken({userName: success.data.username, userId: success.data.userId}, secret, expiresIn, (error, token) => {
    if(error) {
        console.log('::::::::::Error generating token::::::::');
        console.log(error);
        next(returnError({message: 'Internal Server Error', status: 500}));
        } else {
            sendSuccessResponse({data: {token: token, user: {userName: success.data.username, userId: success.data.userId},status: 200}}, response);
        }
});

身份验证模块

const signToken = (payload, secret, expireIn, callback) => {
    jwt.sign(payload, secret, {expiresIn: expireIn}, (error, token) => callback(error, token));
};

预先感谢

1 个答案:

答案 0 :(得分:0)

我能够成功执行代码。再次查看代码如何处理 service 层中的回调

jwt.signToken({userName: success.data.username, userId: success.data.userId}, secret, expiresIn, function(error, token) {
    if(error) {
        next(returnError({message: 'Internal Server Error', status: 500}));
        } else {
            sendSuccessResponse({
                data: {
                token: `${token}`,
                user: {
                    userName: success.data.username,
                    userId: success.data.userId
                }
            },
            status: 200
        },response);
    }
});

我的 jwt模块

const signToken = (payload, secret, expireIn, callback) => {
    jwt.sign(payload, secret, {expiresIn: expireIn}, (error, token) => callback(error, token));
};

这可能是将回调实现(在一个模块中完成)作为参数传递给另一个函数(在另一个模块中)的简单演示。