Javascript 我应该如何在Node Express应用程序中将解析用户身份验证作为中间件实现?

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

我正在创建一个Express应用程序,并使用Parse进行用户登录和注册。我正在尝试创建一个中间件来检查用户是否已登录某些页面,例如用户帐户页面

这是我的代码,它抛出了一个错误,因为中间件函数没有访问Parse对象的权限。我是否可以通过某种方式将其传递给中间件,或者是否有更好的方法在其他地方定义中间件功能,让它知道解析对象

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,谢谢,我最终只是将血腥的东西变成了一个全局变量,但您返回的函数想法看起来就像我试图实现的一样。