Node.js NodeJS-如何获得在另一个作用域中使用的结果

Node.js NodeJS-如何获得在另一个作用域中使用的结果,node.js,Node.js,我来自PHP背景,对NodeJS有点陌生 我有一个中间件正在执行会话检查: app.io.use(function(socket, next) { var redisClient = redis.createClient(); redisClient.get('sess:1234', function(err, reply) { }); } 我想做的是从redis查询中获得回复,并在中间件范围内使用它来检查某些条件,断言错误或继续下一步 如何实现这一点?我不确定您使用的是哪种

我来自PHP背景,对NodeJS有点陌生

我有一个中间件正在执行会话检查:

app.io.use(function(socket, next) {

  var redisClient = redis.createClient();

  redisClient.get('sess:1234', function(err, reply) {

  });
}
我想做的是从redis查询中获得回复,并在中间件范围内使用它来检查某些条件,断言错误或继续下一步


如何实现这一点?

我不确定您使用的是哪种框架, 但我认为,通过像这样将查询结果附加到套接字对象,可以将查询结果传递给所有连续的中间件和路由

app.io.use(function(socket, next) {

  var redisClient = redis.createClient();

  redisClient.get('sess:1234', function(err, reply) {
       socket.queryResult = reply;
       next();
  });
}

这里已经有了更深入的回答:


总之,看起来您正在使用,所以我不确定它们的语法,但是您可能想将一些数据附加到
req
对象,这可能是Express.io中的
socket
对象。

谢谢您的回答。谢谢您的回答。