Sails.js 风帆助手和机器规格

Sails.js 风帆助手和机器规格,sails.js,helpers,Sails.js,Helpers,我将sails升级到@^1.0.0版本,在开发API时,我想使用一个服务,但sails记录了现在使用Helper的建议。我并不真正使用新的方法来开发、构建脚本或操作 我所有的尝试都没有成功 在下面的例子中 这是我的控制器呼叫: var ob = await ails.helpers.testy('sayHello'); res.json({ob:ob}); 助手 module.exports={ friendlyName: 'Testy', description: 'T

我将sails升级到@^1.0.0版本,在开发API时,我想使用一个服务,但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.......
如果我从控制器中删除“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)

评论中的第一个人是对的

fn中删除async后:async函数(inputs,exists){}
您需要设置
sync:true
,默认设置为false。同步帮助程序部分对其进行了描述

所以你的代码应该是这样的

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);

  }


};
从另一方面看,您的异步/await有问题。最主要的原因是

  • 不支持Node.js版本-请检查当前版本是否支持它
  • 如果您使用或其他与Babel相关的解决方案,您可能会错过异步/等待处理所需的插件

  • 关于删除
    async/await
    部分,您必须将
    sync
    属性设置为
    true
    ,这样您就可以调用帮助程序,而不必在module.exports中调用
    await
    @HamzaFatmi。在帮助程序定义中是的。不工作。。你可能有一些助手使用的例子吗?你的sails解决方案非常有用,谢谢你,Pavlo!我终于打败了野兽。谢谢你的帮助!