Javascript sailsjs中的模型关联

Javascript sailsjs中的模型关联,javascript,associations,sails.js,models,waterline,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, }, googl

我想在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属性,这是一个主键属性。


因此是错误的。已解决。

嗯,在发布问题2分钟后,我看到了问题。我在facebook模型中使用了一个id属性,这是一个主键属性。因此是错误的。已解决。您可以发布自己的问题答案。这会让其他人更清楚地知道答案。谢谢你的建议。事情总是这样发生的。:)仅供参考,如果您想与其他用户实时讨论任何Sails.js问题,请查看我们的Gitter页面。