Я пытаюсь выполнить вставку или обновление в базе данных postgres с помощью узла .js с расширением pg (версия 0.5.4).
Пока что у меня есть этот код: (...)
client.query({
text: "update users set is_active = 0, ip = $1 where id=$2",
values: [ip,id]
}, function(u_err, u_result){
debug(socket_id,"update query result: ",u_result);
debug(socket_id,"update query error: ",u_err);
date_now = new Date();
var month = date_now.getMonth() + 1;
if(!u_err){
client.query({
text: 'insert into users (id,first_name,last_name,is_active,ip,date_joined) values' +
'($1,$2,$3,$4,$5,$6)',
values: [
result.id,
result.first_name,
result.last_name,
1,
ip,
date_now.getFullYear() + "-" + month + "-" + date_now.getDate() + " " + date_now.getHours() + ":" + date_now.getMinutes() + ":" + date_now.getSeconds()
]
}, function(i_err, i_result){
debug(socket_id,"insert query result: ",i_result);
debug(socket_id,"insert query error: ",i_err);
});
}
});
Проблема в том, что, хотя оба запроса работают, проблема всегда выполняется как вместо того, чтобы запускать только функцию вставки в случае сбоя обновления.
Функции отладки в коде выводят что-то вроде:
ОБНОВЛЕНИЕ
Object { type="update query result: ", debug_value={...}}
home (linha 56)
Object { type="update query error: ", debug_value=null}
home (linha 56)
Object { type="insert query result: "}
home (linha 56)
Object { type="insert query error: ", debug_value={...}}
Вставить
Object { type="update query result: ", debug_value={...}}
home (linha 56)
Object { type="update query error: ", debug_value=null}
home (linha 56)
Object { type="insert query result: ", debug_value={...}}
home (linha 56)
Object { type="insert query error: ", debug_value=null}
** РЕДАКТИРОВАТЬ **
ОТВЕТ ОТ разработчика node-postgres:
Можно получить количество строк, затронутых вставкой и обновлением . Это не полностью реализовано во встроенных привязках, но работает в чистой версии javascript. Я буду работать над это в течение на следующей неделе или две. А пока используйте чистую версию javascript и посмотрите здесь:
** КОНЕЦ РЕДАКТИРОВАНИЯ **
Кто-нибудь может помочь?