有点新,请多多包涵。尝试使用护照仅对网站中的特定路线进行身份验证。这些路线位于一个名为blog_a.js
. 我在主server.js
文件中创建了以下函数:
function checkAuthenticated(req, res, next) {
if (req.isAuthenticated()){
return next()
}
res.redirect('/login')
}
function checkNotAuthenticated(req, res, next) {
if (req.isAuthenticated()){
return res.redirect('/')
}
next()
}
但是,我正在尝试将上述函数传递到blog_a.js
模块中,因此我可以将它们用作中间件来保护该模块中的路由。
我尝试module.exports = {checkAuthenticated, checkNotAuthenticated}
在主“server.js”文件的底部使用,然后使用let server = require('../server.js')
一行将这些函数导入到包含我要保护的路由的模块中。
但是,上面的server
变量返回为未定义,我尝试了几种排列/解构方法来尝试导入它。一切都无济于事,由于“未定义”对象,我不断收到路由失败 - Error: Route.get() requires a callback function but got a [object Undefined]
。
如何在server.js
文件中设置身份验证,然后传递其身份验证功能以用作单个路由文件中的中间件?
我查看了这个解决方案,但它没有清楚地解释如何从一个模块server.js
--到另一个模块--获取中间件功能blog_a.js
。