sequelize.js - Finden von id und Ergebnis zurückgeben
Ich habe eine Funktion,
var findUserDevice = function(userDeviceId){
var device = db.DeviceUser.find({
where: {
id: userDeviceId
}
}).then(function(device) {
if (!device) {
return 'not find';
}
return device.dataValues;
});
};
aber diese Funktion nichts zurück...
var UserDevice = findUserDevice(req.body.deviceUserId);
console.log(UserDevice);//undefined
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die operation, die Sie versuchen zu tun, ist
async
, was bedeutet, dass Sie benötigen, um ein Rückruf. Dasequelize
Grundlage Verspricht, sollten Sie eigentlich schreiben Sie Ihren code wie folgt :Und später verwenden, wie :
Wenn Sie immer undefined anstelle von 'nicht finden' auf der Konsole, es bedeutet, dass deine Funktion gibt einen Wert zurück. Das problem könnte sein, dataValues ist tatsächlich undefiniert. Sie brauchen, um zu überprüfen, für den Inhalt
device
.Tipp: Versuchen Sie, die Rücksendung nur
device
oderdevice.id
PS. Wenn Sie wollen, um die Suche basierend auf id, sollte für
findById()
Funktion Ihres Modells.Es ist 2019,
async
&await
werden mehr und mehr populär. Sie können den code ändern, umIMHO, obige code ist viel besser lesbar.
Dieser Funktion erhalten params-id, diese Arbeiter für mich: