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?
CodePudding user response:
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')
});