I'm calling a controller to return true or false
Not working controller:
const jwt = require('jsonwebtoken');
class TokenController {
static async isValidToken(token) {
try {
jwt.verify(token, process.env.TOKEN_SECRET);
return true;
} catch {
return false;
}
}
}
module.exports = TokenController;
router:
const router = require('express').Router({ mergeParams: true });
const TokenController = require('../../controllers/token');
router.get('/', (req, res) => {
console.log(TokenController.isValidToken(req.cookies['auth-token']));
}
module.exports = router;
its returning Promise { true }
or Promise { false }
depending on the controller, but when I receive in the router it returns a promise but it was supposed to return a boolean
Working controller
const ScrumTask = require('../models/ScrumTask');
const User = require('../models/User');
class ScrumController {
static async getTask(id) {
console.log(id);
const taskData = await ScrumTask.findOne(
{ _id: id },
async (err, data) => {
if (!err) {
return data;
} else {
console.log('error');
res.status(400).send(err);
}
}
);
return taskData;
}
}
module.exports = ScrumController;
router calling my working controller
const router = require('express').Router({ mergeParams: true });
const translate = require('../../../config/translate.json');
// Import Controllers
const TokenController = require('../../controllers/token');
const ScrumController = require('../../controllers/scrum');
router.get('/view_task/:id', async (req, res) => {
let id = req.params.id;
const taskData = await ScrumController.getTask(id);
}
module.exports = router;