我不理解为什么其他文件js的功能(带有返回)仅返回未定义的

时间:2019-01-16 14:58:45

标签: javascript node.js express jwt

当我从user_controller.js调用函数verifyToken时,结果始终是不确定的...但是我在verifyToken内部返回了一个结果,在token_management.js中创建...为什么?

这是我的本地主机中的一个nodejs服务器,带有mongodb数据库。最新版本。

USER_CONTROLLER.JS

const Token = require('../token_management');
// User login action
    exports.login = function (req, res) {

        const query = User.find({$and: [{email: req.params.email}, {password: req.params.password}]});

        User.updateOne(query, {$set: {last_visit: new Date()}}, function () {
});
        User.find(query, function (err, result) {
    result.map(function (user) {
            Token.verifyToken(req);
            console.log(Token.verifyToken(req));
            if (err) {
                res.send(err);
            } else if (user.length === 0) {
                res.send('User not found! Bad email or password.');
            } else if (Token.verifyToken(req) === undefined) {
                Token.createToken(user.name, user.surname, user.email);
                res.send('New token created!');
            } else {
                res.json({
                    message: 'User details loading..',
                    data: user
                });
            }
        });
    });
};

TOKEN_MANAGEMENT.JS

// Permit verify token when user sign in
exports.verifyToken = function (req) {

const bearerHeader = req.headers['authorization'];

if (typeof bearerHeader !== 'undefined') {

    const bearer = bearerHeader.split(' ');

    const token = bearer[1];

    // JWT method to verify an existing token
    JWT.verify(
        // Current token (find in database)
        token,
        // Token key to decrypt
        'seppa_api_key',
        function (err, decoded) {
            // Token creation
            if (err) {
                return err;
            }
            // Valid token
            else {
                return decoded;
            }
        })
    }
};

console.log(Token.verifyToken(req));的结果;总是未定义...(第11行)

0 个答案:

没有答案