Node.js 找不到Passport身份验证中间件

Node.js 找不到Passport身份验证中间件,node.js,express,passport.js,middleware,passport-local,Node.js,Express,Passport.js,Middleware,Passport Local,我有以下代码库 passport.use(new LocalStrategy({ usernameField: 'emailAddress', passwordField: 'password', passReqToCallback: true }, function(req,username, password, next) { var res =""; // this is the real issue, I don't know where to find res, o

我有以下代码库

passport.use(new LocalStrategy({
  usernameField: 'emailAddress',
  passwordField: 'password',
  passReqToCallback: true
},
 function(req,username, password, next) {
   var res =""; // this is the real issue, I don't know where to find res, or what should I initialize to re
   console.log('psprt val');
   userController.ValidateLogin(req,res,function(userDetails){
      req.user = userDetails;
      return next(null,userDetails);
    });
 }));
userController.ValidateLogin以如下格式返回错误

userController.ValidateLogin = function(req,res,userDetails) {
    return res.send({ Status:403, Msg: "Not allowed" });
}

但是它说res.send不是一个函数,因为res是未定义的,如何发送res以便我有这种消息作为回报

您不允许从配置中间件发送响应(它只能用于passport配置,我们验证用户)。您需要对用户进行身份验证和验证,然后返回,以下代码可能会帮助您

userController.ValidateLogin = function(req,res,callback) {
    return callback({ Status:403, Msg: "Not allowed" });
}

显示代码
返回res.send({Status:403,Msg:“Not allowed”})的违规行的位置是。显示
usercontroller.ValidateLogin()
的代码。这就是问题所在。这是来自validate login functinYeah,让我们看看该函数的代码!粘贴
ValidateLogin()
函数的代码。您可以看到我在上面给出了res='',因为我没有res@jfriend00从中间件发送响应违背了使用中间件的目的。@jfriend00我们可以从中间件发送响应,但我是referinfg提供的中间件,我们无法发送响应,您可以引用doct他们来自此类任务(如验证用户)。@ArifKhan我如何将其作为来自中间件的响应发送当请求进入中间件时,您检查用户是否有效,如果无效,则立即返回响应。