具有简单控制器属性的 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'