【问题标题】:Tidy callbacks node.js整洁的回调 node.js
【发布时间】:2013-02-24 20:11:58
【问题描述】:

试图想出一种合理的结构方式。为简单起见,我正在使用 Node.js、Redis 和 Express.js 创建一个用户注册页面。

用户将详细信息发布到页面。

用户名被确认是有效的,然后 Redis 检查用户名是唯一的。如果是,我们继续,如果不是,我们返回错误消息和所有以前的详细信息。

密码已确认有效。如果不是,则返回错误并且我们不继续。

电子邮件在 Redis 中被确认是唯一的。如果是,我们继续,如果不是,我们返回错误消息并停止。

如果此时没有错误,则将数据插入到Redis中。

这看起来很简单,但是使用回调会产生一团糟——尤其是在返回错误时。

我怎样才能以一种整洁的方式来组织它?

【问题讨论】:

    标签: node.js callback express redis


    【解决方案1】:

    你所经历的是回调地狱。你可以做很多事情,比如命名你的回调函数而不是内联它们,遵循相同的模式等等......

    不过,我建议你看看the async module

    在您非常典型的情况下,我会像这样使用 async.series:

    var validateUserName = function(username, callback){
      if(username!='valid'){
        return callback('invalid username');
      }
    };
    var checkRedis = function(username, callback){
      // check to redis
    };
    var checkPassword = function(password, callback){
      // if password valid callback();
      // else callback('invalid password');
    }
    etc...
    
    async.series([checkUserName, checkRedis, checkPassword, etc...], next);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2014-09-01
      • 2012-08-03
      • 2014-11-19
      • 2015-12-09
      • 2012-02-12
      相关资源
      最近更新 更多