I am checking if a user is logged in a route called forum. I am importing it like this. The file is routes/forum.js
const isloggedinimport = require('../index')
I have the function on index.js
const isloggedin = (req,res,next) => {
if(req.user) {
next()
}
else {
res.render('loginerror',)
}
}
I am exporting with
module.exports = isloggedin
When I try to run this
router.get('/', isloggedinimport.isloggedin, (req, res) => {
res.render('monitors/monitorhome')
});
module.exports = router
I get the error that Route.get() requires a callback function but got a [object Undefined]
The error is on this line
router.get('/', isloggedinimport.isloggedin, (req, res) => {
How do I fix this?
When exporting the function, try using the following code:
module.exports.isloggedin = isloggedin
This will set the property isloggedin to the function so that when you call isloggedinimport.isloggedin, it will access the function properly. Alternatively, you could use the following code to export your function:
module.exports = isloggedin
and then use this code to import the function:
const isloggedin = require('../index')
...
router.get('/', isloggedin, (req, res) => {
res.render('monitors/monitorhome')
});