Tôi khá mới trên Nodej và buồm. Tôi đang triển khai một máy chủ tương tự với Twitter. Trong mô hình người dùng, phải có 2 trường: theo sau và sau, và 2 trường là liên kết của chính người dùng mô hình đó.Mô hình Sails.js: tạo 2 liên kết thành tự thất bại
Câu hỏi của tôi là khi mô hình chỉ có 1 liên kết, theo sau hoặc theo dõi, nó hoạt động. Tuy nhiên, khi cả hai người theo dõi và sau đây được bao gồm, sẽ có lỗi vi.
Mã này là một cái gì đó như thế này:
module.exports = {
attributes: {
alias: {
type:'string',
required: true,
primaryKey: true
},
pwd: {
type: 'string',
required: true
},
follower: {
collection: 'user',
via: 'alias'
},
following:{
collection: 'user',
via: 'alias'
}
}
Mã sẽ gây ra lỗi như vậy:
usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/references.js:115
throw new Error('Trying to associate a collection attribute to a model tha
^
Error: Trying to associate a collection attribute to a model that doesn't have a Foreign Key. user is trying to reference a foreign key in user
at References.findReference (/usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/references.js:115:11)
at References.addKeys (/usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema/references.js:72:22)
How are you Populating mô hình của bạn trong các mã điều khiển? Nếu không sử dụng populateAll(), bạn có cung cấp tên thuộc tính để điền() không? –
@AlexAlksne Tôi cư trú như thế này: 'User.find ({alias: item.alias}). Điền vào ('follower'). Exec (console.log);' Thực ra, tôi chỉ định nghĩa 'following', thậm chí không bao giờ sử dụng nó . Sau đó, các cánh buồm báo cáo lỗi khi lifing. –
Rất tiếc, mọi thứ có vẻ đúng. Tôi đang bối rối cho đến nay; nó không nhiều nhưng nếu bạn nhìn vào dòng gây ra lỗi trong references.js nó có nhận xét này: "Nếu không tìm thấy thuộc tính nào phù hợp, hãy ném một lỗi vì bạn đang cố gắng thêm thuộc tính hasMany vào mô hình trong đó liên kết không 't có một khóa nước ngoài phù hợp với bộ sưu tập. " –