Есть ли что-то особенное, что мне нужно сделать с параметризованным запросом?Почему я не могу удалить из db с помощью node-postgres?
следующее, кажется, успеха (я использую обещание маньяков client.query
видеть конец),
console.log('cancel for', data);
var cancelInviteQuery = 'delete from friendship where user_1=$1 and user_2_canonical=$2';
return query(cancelInviteQuery, [data.id, data.friend])
.then(function (results) {
console.log('ran delete frienship', results);
})
.catch(function (error) {
console.error('failed to drop friendship', error);
});
, потому что я получаю вывод:
cancel for {"id":3,"friend":"m"}
ran delete frienship []
, но затем следующий запрос из база данных показывает, что запись все еще существует
select * from friendship;
id | user_1 | user_2 | user_2_canonical | confirmed | ignored
----+--------+--------+------------------+-----------+---------
8 | 3 | 9 | m | f | f
, а затем следующий запрос удался, когда я мак е непосредственно к базе данных (с помощью PSQL клиента)
delete from friendship where user_1=3 and user_2_canonical='m'
моя query
функция (обертка Близится узел-Postgres client.query
):
function query(sql, params) {
var promise = new RSVP.Promise(function (resolve, reject) {
pg.connect(CONNECTIONSTRING, function (error, client, done) {
if (error) { reject(error); return; }
client.query(sql, params, function (error, result) {
done(); // Greedy close.
if (error) {
reject(error);
return;
}
else if (result.hasOwnProperty('rows')) {
resolve(result.rows);
} else { resolve(result.rows); }
});
});
});
return promise;
}
Что-то не так с вашу переменную 'data'. В 'console.log' отображается' 'friend ':« m »', но вы ожидаете, что это будет '' friend': «mike» '. – victorkohl
Извините @victorkohl это была неряшливая паста. – Michael
Вы решаете эту проблему? Если не отправить больше информации –