航行助手和机器规格

时间:2018-04-07 03:17:22

标签: sails.js helpers

我将sails升级到@ ^ 1.0.0版本,当我正在开发API时,我想使用Service但Sails文档建议现在使用Helper。而且我并不真正使用新方法来处理帮助程序,构建脚本或操作。

所有我疯狂的尝试都没有成功。

以下示例..

这是我的控制器电话:

    var ob = await ails.helpers.testy('sayHello');

    res.json({ob:ob});

辅助

module.exports = {

friendlyName: 'Testy',


description: 'Testy something.',


inputs: {

  bla: {
    type: 'string'
  }

},


exits: {

  success: {

  }

},


fn: async function (inputs, exits) {

  console.log({blabla:inputs.bla})

  if(!inputs.bla) return exits.error(new Error('text not found'));

  var h = "Hello "+ inputs.bla;

  // All done.
  return exits.success(h);

}

};

我收到此错误

error: A hook (`helpers`) failed to load!
error:
error: Attempted to `require('*-serv\api\helpers\testy.js')`, but an error occurred:
--
D:\*-serv\api\helpers\testy.js:28
  fn: async function (inputs, exits) {
            ^^^^^^^^
SyntaxError: Unexpected token function.......

如果我从Controller中删除“async”和“await”,ob对象返回null并且我有这个错误

WARNING: A function that was initially called over 15 seconds
ago has still not actually been executed.  Any chance the
source code is missing an "await"?

To assist you in hunting this down, here is a stack trace:
```
    at Object.signup [as auth/signup] (D:\*-serv\api\controllers\AuthController.js:106:26)

1 个答案:

答案 0 :(得分:1)

评论中的第一个人是正确的。

fn: async function (inputs, exists) {};删除异步后,您需要设置sync: true,默认情况下为false。 at helpers doc page同步助手部分中进行了描述。

所以您的代码应如下所示

module.exports = {


  friendlyName: 'Testy',


  description: 'Testy something.',


  sync: true, // Here is essential part


  inputs: {

    bla: {
      type: 'string'
    }

  },


  exits: {

    success: {

    }

  },


  fn: function (inputs, exits) {

    console.log({blabla:inputs.bla})

    if(!inputs.bla) return exits.error(new Error('text not found'));

    var h = "Hello "+ inputs.bla;

    // All done.
    return exits.success(h);

  }


};

另一方面,您遇到 async / await 问题。造成这种情况的最主要原因是

  1. 不支持的Node.js版本-检查您当前的版本是否支持它
  2. 如果您使用sails-hook-babel或其他与Babel相关的解决方案,则可能会错过用于异步/等待处理的必需插件
相关问题