Я использую узел с Mysql, и вот моя проблема.выполнить async несколько запросов Mysql на узле
Я пытаюсь добавить новые фотографии в моей базе данных и вернуть его как массив
вот моя функция:
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}
Вставка работает хорошо, но я не могу получить результаты в отправьте их клиенту. (мой массив пуст)
Спасибо.
'db.connection.query' является асинхронным, поэтому перед вызовом обратного вызова происходит что-либо вне его обратного вызова. –