具有简单控制器属性的 Sails 一致性违规
Sails Consistency violation with simple Controller attribute
在 Sails 1.x 应用程序中,将 属性 添加到控制器,使用布尔值、数字或 null
对其进行初始化,然后尝试启动应用程序。
module.exports = {
_foo: 123, // illegal
_bar: '', // legal
_baz: [] // legal
};
升降机将失败并显示此消息:
error: Failed to lift app: Error: Consistency violation: `action` (2nd arg) should be provided as either a req/res/next function or a machine def (actions2), but instead, got: ...
但是,空字符串、空数组、空对象等也可以。
我是不是误解了控制器的一些基本知识,或者为什么不允许使用布尔值和数字?
我的目标是向控制器添加简单的属性,以便临时存储信息。
动作 2 控制器遵循节点机结构:
https://node-machine.org/spec/machine
助手
对于动态内容,更好的选择可能是使用助手:
https://sailsjs.com/documentation/concepts/helpers
例如:
// api/helpers/custom.js
module.exports = {
friendlyName: 'Format welcome message',
sync: true, // without this use await sails.helpers.custom
fn: function(inputs, exits, env) {
return {
data: 'example'
}
}
}
在控制器中以 cons data = sails.helpers.custom();
的形式访问此信息。
配置
对于常量,您可以使用配置文件:
https://sailsjs.com/documentation/concepts/configuration
例如:
// config/custom.js
module.exports.custom = {
data: 'example'
}
在控制器中使用此数据作为 const data = sails.config.custom.data; // result 'example'
在 Sails 1.x 应用程序中,将 属性 添加到控制器,使用布尔值、数字或 null
对其进行初始化,然后尝试启动应用程序。
module.exports = {
_foo: 123, // illegal
_bar: '', // legal
_baz: [] // legal
};
升降机将失败并显示此消息:
error: Failed to lift app: Error: Consistency violation: `action` (2nd arg) should be provided as either a req/res/next function or a machine def (actions2), but instead, got: ...
但是,空字符串、空数组、空对象等也可以。
我是不是误解了控制器的一些基本知识,或者为什么不允许使用布尔值和数字?
我的目标是向控制器添加简单的属性,以便临时存储信息。
动作 2 控制器遵循节点机结构:
https://node-machine.org/spec/machine
助手
对于动态内容,更好的选择可能是使用助手:
https://sailsjs.com/documentation/concepts/helpers
例如:
// api/helpers/custom.js
module.exports = {
friendlyName: 'Format welcome message',
sync: true, // without this use await sails.helpers.custom
fn: function(inputs, exits, env) {
return {
data: 'example'
}
}
}
在控制器中以 cons data = sails.helpers.custom();
的形式访问此信息。
配置
对于常量,您可以使用配置文件:
https://sailsjs.com/documentation/concepts/configuration
例如:
// config/custom.js
module.exports.custom = {
data: 'example'
}
在控制器中使用此数据作为 const data = sails.config.custom.data; // result 'example'