Ich benutze Knoten mit Mysql und hier ist mein Problem.führen async mehrere Mysql-Abfragen auf Knoten
ich neue Fotos auf meiner Datenbank hinzuzufügen bin versucht, und senden Sie es als ein Array
hier ist meine Funktion:
function addNewPhotos(_id, files) {
var deferred = Q.defer();
var new_photos = []
_.each(files, function (one) {
var data = [
one.path,
_id,
0
]
var sql = 'INSERT INTO photos(photo_link, id_user, isProfil) VALUES (?, ?, ?)';
db.connection.query(sql, data, function (err, result) {
if (err)
deferred.reject(err.name + ': ' + err.message);
var sql = 'SELECT id_user, photo_link, isProfil FROM `photos` WHERE id = ?';
if (result){
db.connection.query(sql, [result.insertId], function(err, photo) {
if (err) deferred.reject(err.name + ': ' + err.message);
if (photo) {
new_photos.push(photo[0]);
}
});
}
})
})
deferred.resolve(Array.prototype.slice.call(new_photos));
return deferred.promise}
Das Einfügen funktioniert gut, aber ich die Ergebnisse nicht abrufen kann Sende sie zurück an den Kunden. (mein Array ist leer)
Danke.
'db.connection.query' ist asynchron, so dass alles außerhalb seines Callbacks stattfindet, bevor der Callback aufgerufen wird. –