水线ORM错误:错误:尝试访问未定义的集合字符串

时间:2018-03-27 14:04:47

标签: sails.js waterline

我正在使用带有水线ORM的风帆版本0.12来生成模型。我在尝试运行Error: Trying to access a collection string that is not defined命令时收到此错误sudo sails lift

module.exports = {

  attributes: {
    manufacturer_name: {
      type: 'string'
    },
    manufacturer_logo_url: {
      type: 'string'
    },
    manufacturer_archived_status: {
      type: 'boolean'
    },
    manufacturer_tabs: {
      model: 'manufacturer_tabs'
    },
    brands: {
      model: 'brands'
    }
  }
};

1 个答案:

答案 0 :(得分:0)

在与模型的关联中,模型的名称必须与模型的确切名称相匹配,即文件名。通常你的模型(文件名)应该是JAVA样式的CamelCase(或PascalCase)表示法。所以你的代码应该是这样的:

module.exports = {

  attributes: {
    manufacturer_name: {
      type: 'string'
    },
    manufacturer_logo_url: {
      type: 'string'
    },
    manufacturer_archived_status: {
      type: 'boolean'
    },
    manufacturer_tabs: {
      model: 'ManufacturerTabs'
    },
    brands: {
      model: 'Brands'
    }
  }
};

您的关联模型应该位于名称为ManufacturerTabs.js和Brands.js的文件中。

我的建议:避免使用C语言和系统编程样式表示法,因为它不再被现代脚本语言所接受,不包括python。使用camelCase为您的JavaScript代码。因此,请考虑将manufacturer_name替换为manufacturerName,manufacturer_logo_url替换为manufacturerLogoUrl等。尽管如此,这是您的选择。但是,嘿,遵循惯例是很好的。