Я хочу создать модельную модель модели для двух других моделей в SAILS.JS. Но во время компиляции я получаю сообщение об ошибке.Модельная ассоциация в парусах 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 минуты после отправки вопроса я увидел проблему. Я использовал атрибут id в модели facebook, который является атрибутом первичного ключа. Отсюда и ошибка. Решаемые. – praveensanap
Вы можете оставить свой собственный ответ на вопрос. Это сделает ответ более очевидным для других. –
спасибо за предложение. – praveensanap