Sono abbastanza nuovo su Nodejs e vele. Sto implementando un server che è simile a Twitter. Nel modello utente, ci dovrebbero essere 2 campi: follower e following, ei 2 campi sono associazione del modello 'user' stesso.Modello Sails.js: crea 2 associazione a fallita autonoma
La mia domanda è quando il modello ha solo 1 associazione, follower o seguente, funziona. Tuttavia, quando inclusi sia follower che following, ci sarebbe un errore.
Il codice è qualcosa di simile:
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'
}
}
Il codice causerà tale errore:
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)
Come si popolano i vostri modelli nel codice di controllo? Se non si usa populateAll(), si fornisce un nome di attributo a populate()? –
@AlexAlksne I popola in questo modo: 'User.find ({alias: item.alias}). Populate ('follower'). Exec (console.log);' In realtà, definisco semplicemente 'following', anche non lo uso mai . Quindi le vele riportano l'errore durante la vita. –
Strano, tutto sembra corretto. Sono perplesso finora; non è molto, ma se si guarda la linea che sta causando l'errore in references.js ha questo commento: "Se non vengono trovati attributi corrispondenti, genera un errore perché si sta tentando di aggiungere un attributo hasMany a un modello in cui l'associazione non avere una chiave esterna corrispondente alla collezione. " –