2016-07-26 8 views
2

Ich benutze SailsJS (v0.12.3) und ich möchte einen Benutzer erstellen, bevor es erstellt wird. Mein Problem ist der Benutzer wurde erfolgreich erstellt, aber das UserProfile nicht.SailsJS: kann kein Modell in beforeCreate erstellen

Das ist mein UserProfile Modell:

beforeCreate: function (userProfile, cb) { 
    // Creating user login 
    console.log("Creating user login: ", userProfile); 
    User.create({ 
     username: "abc", 
     password: "1234567890" 
    }).then(function (user) { 
     console.log("Creating user done: ", user) 
     userProfile.appUser = user.id; 
     userProfile.code = user.username; 
     cb(null, userProfile); 
    }).catch(function (err) { 
     console.log("ABC", err); 
     cb(err); 
    }); 
} 

Die Konsolenausgabe:

Creating user login: { firstName: 'Vu', 
    lastName: 'Bao', 
    gender: 1, 
    phoneNumber: '0987654321', 
    id: '29b1b37b-ca95-4fd0-8cf8-e35a25af4616', 
    code: '1469529082587', 
    isVerified: false, 
    totalVisit: 0 } 

kann ich sehen Nachricht Creating user login ... gedruckt wird, aber ich kann nicht die Protokollnachricht Creating user done ... und ABC Fehler sehen.

Das Ergebnis: in der Datenbank habe ich die user erstellt, aber userProfile nicht.

Wie kann ich Benutzermodell erstellen, bevor UserProfile korrekt erstellt?

Vielen Dank!

Antwort

3

Nach einer Weile lesen Sie über Modell Aktionen Lifecycle callbacks. Ich finde, dass mein Code nicht die Funktion afterCreate zurückgerufen hat, die ich im User Modell definiert habe. Also, ich entferne die Funktion afterCreate, dann funktioniert es.

// ./api/models/User.js 
afterCreate: function (user, cb) { 
    // i commented a lots in this function, but did not callback cb 
    // then i remove this method because I did not need it anymore 
    // ... 
} 

Dank für das Lesen. Hoffe das hilft anderen !!

+1

Stellen Sie sicher, dass Sie zurückrufen, wenn Sie Lebenszyklusrückrufe verwenden. – Vunb

+1

Könnten Sie bitte einen Beispielcode schreiben? –

+0

Ich habe meine Antwort mit Codebeispiel aktualisiert :) – Vunb