I am trying to get my head around the different ways you can export modules in Node.js and am running into an issue.
When exporting a module in node.js, the following works fine:
const jwt = require('jsonwebtoken')
//Verify token
exports.cookieJwtAuth = (req, res, next) => {
const token = req.cookies.token
try {
const user = jwt.verify(token, process.env.AUTH_SECRET)
req.user = user
next()
} catch (err) {
res.clearCookie('token')
return res.redirect('/login')
}
}
However, when I try to export it like below I get this error:
Error: Route.post() requires a callback function but got a [object Undefined]
const jwt = require('jsonwebtoken')
//Verify token
const cookieJwtAuth = (req, res, next) => {
const token = req.cookies.token
try {
const user = jwt.verify(token, process.env.AUTH_SECRET)
req.user = user
next()
} catch (err) {
res.clearCookie('token')
return res.redirect('/login')
}
}
module.exports = cookieJwtAuth
Why is the second code sample throwing the error, what am I doing wrong here?
>Solution :
Try
module.exports = {cookieJwtAuth}
to match it with the first code