javascript - sails js 中的模型关联

标签 javascript associations sails.js models waterline

我想在 SAILS.JS 中创建一个模型与另外两个模型的模型关联。但是编译时出现错误。

这个模型是User.js

module.exports = {

  attributes: {
    email: {
      type: 'string',
      required: true,
      unique: true
    },
    password: {
      type: 'string',
      required: true,
    },
    google: {
        model:'Google'
    },
      facebook: {
        model:'Facebook'
    }
  }
};

这个模型是Google.js

module.exports = {

  attributes: {
      kind: 'string',
      gender: 'string',
      sub: 'string',
      name: 'string',
      given_name: 'string',
      family_name: 'string',
      profile: 'string',
      picture: 'string',
      email: 'string',
      email_verified: 'string',
      locale: 'string',
      user:{
        model:'User'
      }
  }
};

这个模型是 Facebook.js

module.exports = {

  attributes: {
      name: 'string', 
      id: 'string', 
      user:{
          model:'User'
      }
  }
};

我得到以下错误

/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/foreignKeys.js:104
    throw new Error(error);
          ^
Error: Trying to create an association on a model that doesn't have a Primary Key.
    at ForeignKeys.findPrimaryKey (/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/foreignKeys.js:104:11)
    at ForeignKeys.replaceKeys (/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/foreignKeys.js:53:27)
    at new ForeignKeys (/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/foreignKeys.js:30:10)
    at new module.exports (/usr/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema.js:30:17)
    at Waterline.initialize (/usr/lib/node_modules/sails/node_modules/waterline/lib/waterline.js:107:17)
    at buildORM (/usr/lib/node_modules/sails/lib/hooks/orm/build-orm.js:52:15)
    at Array.async.auto.instantiatedCollections (/usr/lib/node_modules/sails/lib/hooks/orm/index.js:203:11)
    at listener (/usr/lib/node_modules/sails/node_modules/async/lib/async.js:490:46)
    at /usr/lib/node_modules/sails/node_modules/async/lib/async.js:441:17
    at _each (/usr/lib/node_modules/sails/node_modules/async/lib/async.js:46:13)
    at Immediate.taskComplete (/usr/lib/node_modules/sails/node_modules/async/lib/async.js:440:13)
    at processImmediate [as _immediateCallback] (timers.js:367:17)

最佳答案

好吧,在发布问题 2 分钟后,我看到了问题所在。我在 facebook 模型中使用了一个 id 属性,这是一个主键属性。 http://sailsjs.org/documentation/concepts/models-and-orm/attributes

因此错误。已解决。

关于javascript - sails js 中的模型关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31865132/

相关文章:

ruby-on-rails-4 - Rails 控制台 : Unable to autoload constant

node.js - sails.js + waterline One-To-Many模型关联,删除Many时会发生什么?

node.js - NodeJS - 响应流

javascript - var t={}; 的含义变量等于花括号

javascript - 有什么方法可以将元数据添加到 JavaScript 对象中吗?

javascript - 希望在互联网出现故障时离线存储表单数据并在互联网活跃时提交

mysql - ActiveRecord/Rails 中的多列外键/关联

javascript - 从客户端 Controller (MEAN.JS) 指定 Mongo 查询参数

ruby-on-rails-4 - 导轨 4 I18n : Using human model name in association validation message

node.js - sails.js 支持数据库 View 吗?