我怎样才能从帆控制台打电话给助手?
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)
})();
我正在尝试在 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()
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)
})();