Javascript 我应该如何在Node Express应用程序中将解析用户身份验证作为中间件实现?
我正在创建一个Express应用程序,并使用Parse进行用户登录和注册。我正在尝试创建一个中间件来检查用户是否已登录某些页面,例如用户帐户页面 这是我的代码,它抛出了一个错误,因为中间件函数没有访问Parse对象的权限。我是否可以通过某种方式将其传递给中间件,或者是否有更好的方法在其他地方定义中间件功能,让它知道解析对象Javascript 我应该如何在Node Express应用程序中将解析用户身份验证作为中间件实现?,javascript,node.js,express,parse-platform,Javascript,Node.js,Express,Parse Platform,我正在创建一个Express应用程序,并使用Parse进行用户登录和注册。我正在尝试创建一个中间件来检查用户是否已登录某些页面,例如用户帐户页面 这是我的代码,它抛出了一个错误,因为中间件函数没有访问Parse对象的权限。我是否可以通过某种方式将其传递给中间件,或者是否有更好的方法在其他地方定义中间件功能,让它知道解析对象 module.exports = function(app, Parse){ app.get('user', isLoggedIn, function(req, res
module.exports = function(app, Parse){
app.get('user', isLoggedIn, function(req, res, next){
// do something
}
}
function isLoggedIn(req, res, next){
if(Parse.User.authenticated()){
return next();
} else {
// do something else
}
}
在导出函数作用域内创建函数,或者返回一个函数,以便可以将Parse作为参数传入
module.exports = function (app, Parse) {
app.get('user', isLoggedIn(Parse), function (req, res, next) {
// do something
});
};
function isLoggedIn(Parse) {
return function (req, res, next) {
if (Parse.User.authenticated()) {
return next();
} else {
// do something else
}
});
}
您可以通过主js文件中的app.use为所有请求定义中间件。Ben,谢谢,我最终只是将血腥的东西变成了一个全局变量,但您返回的函数想法看起来就像我试图实现的一样。