Lookup类方法返回空对象而不是用户数据

时间:2017-03-07 03:00:54

标签: javascript node.js ecmascript-6 adonis.js

所以,我正在创建不同的帮助器来减少控制器上的一些代码。所以我创建了一个名为Lookup的类来帮助我搜索数据库中的用户,并创建了一个searchAccountKey(key,callback)。因此,每当我使用此方法时,它似乎都可以工作,但是用户对象不返回任何内容而是返回用户。

我怀疑这种情况正在发生,因为收益率但是当我使用收益率时它会给我一个错误。

LookupHelper.js

'use strict';
const User = use('App/Model/User');
class LookupHelper {
  // Grab the user information by the account key
  static searchAccountKey(key, callback) {
      const user = User.findBy('key', key)
      if (!user) {
        return callback(null)
      }
      return callback(user);
  }

}

module.exports = LookupHelper;

UsersController(第44行)

Lookup.searchAccountKey(account.account, function(user) {
    return console.log(user);
});

编辑:每当我把收益率放在User.findBy()

之前

The keyword 'yield' is reserved const user = yield User.findBy('key', key)

代码:

'use strict';
const User = use('App/Model/User');
class LookupHelper {
  // Grab the user information by the account key
  static searchAccountKey(key, callback) {
      const user = yield User.findBy('key', key)
      if (!user) {
        return callback(null)
      }
      return callback(user);
  }

}

module.exports = LookupHelper;

1 个答案:

答案 0 :(得分:2)

关键字yield只能在生成器中使用。 searchAccountKey目前是正常功能。您需要在函数名称前使用*才能使其成为generator

static * searchAccountKey (key, callback) {
  const user = yield User.findBy('key', key)
  // ...
}

完成此更改后,您还需要使用Lookup.searchAccountKey致电yield

yield Lookup.searchAccountKey(...)