在NodeJS CoffeeScript与JavaScript

时间:2016-03-24 18:09:53

标签: javascript node.js coffeescript npm sails.js

在Sails.js文档中,使用.exec(错误,结果)执行数据库查询,我们检查是否(!result)检查结果是否为空。

我正在用CoffeeScript构建一个npm模块。当它被转换为JavaScript时,即使结果为空,条件if(result)也会成功!

是否与CoffeeScript有关?

Bruteforce.find
    where:
      _id: _id
  .exec (err, doc) ->
    typeof callback == 'function' &&  callback(err, null) if err
    data = {}
    if doc && new Date(doc.expires).getTime() < new Date().getTime()
      Bruteforce.destroy
        _id: _id
      .exec (err) ->
        return callback(err) if err
        return callback()
    if doc // condition succeeds even doc is empty
      data.count = doc.count
      data.lastRequest = new Date(doc.lastRequest)
      data.firstRequest = new Date(doc.firstRequest)
      typeof callback == 'function' && callback(null, data)
    else
      typeof callback == 'function' && callback(null, null) 

翻译的JavaScript

return Bruteforce.find({
      where: {
        _id: _id
      }
    }).exec(function(err, doc) {
      var data;
      if (err) {
        typeof callback === 'function' && callback(err, null);
      }
      data = {};
      if (doc && new Date(doc.expires).getTime() < new Date().getTime()) {
        Bruteforce.destroy({
          _id: _id
        }).exec(function(err) {
          if (err) {
            return callback(err);
          }
          return callback();
        });
      }
      if (doc) { // condition succeeds even doc is empty
        data.count = doc.count;
        data.lastRequest = new Date(doc.lastRequest);
        data.firstRequest = new Date(doc.firstRequest);
        return typeof callback === 'function' && callback(null, data);
      } else {
        return typeof callback === 'function' && callback(null, null);
      }
    });

0 个答案:

没有答案