我怎样才能从帆控制台打电话给助手?

How can i make a call to a helper from sails console?

我正在尝试在 sails.js 中创建一个 helloworld 助手(示例 here

我的文件是 get.js 并且 sails 将辅助函数命名为 get()

get.js 文件:

module.exports = {

  friendlyName: 'Format welcome message',

  description: 'Return a personalized greeting based on the provided name.',

  inputs: {

    name: {
      type: 'string',
      example: 'Ami',
      description: 'The name of the person to greet.',
      required: true
    }

  },

  fn: async function (inputs, exits) {
    var result = `Hello, ${inputs.name}!`;
    return exits.success(result);
  }

};

但是当我在帆控制台上做这个的时候

await sails.helpers.get("john")

它returns一个错误:

SyntaxError: await is only valid in async function

我找不到错误在哪里,或者是否有错误。有什么问题吗? 提前致谢

您看到的错误是因为您只能从另一个 async 函数中 await 一个函数的 return。如果您调用代码 "straight from the console",它会如您所见那样爆炸。

为了快速 testing/tinkering,您可以使用 .then()

从控制台中的助手获取 return 值
sails.helpers.get("john").then(console.log).catch(console.error)
sails.helpers.get("john").then((greeting) => {
  console.log('Got greeting:', greeting)
}).catch(console.error);

或者,通过将助手调用包装在异步 IIFE 中,然后使用 await.

(async () => {
  let greeting = await sails.helpers.get("john")
  console.log(greeting)
})();