Я пытаюсь сохранить небольшой файл в базе данных postgres, используя модуль node-postgres. Я понимаю, что для этого мне следует использовать тип данных bytea. У меня проблема, когда я делаю что-то вроде:
fs.readFile path, (err, data) ->
client.query 'UPDATE file_table SET file = $1 WHERE key = $2', [data, key], (e, result) ->
....
Содержимое столбца файла в базе данных: \ x и ничего не сохраняется. Если я изменю буфер данных на шестнадцатеричный, то есть data.toString ('hex'), файл будет сохранен, но все форматирование будет потеряно при чтении файла обратно.
Как правильно сохранить файл в postgres с помощью модуля node-postgres?
psql
. Посмотри, правильно ли там. Это скажет вам, связана ли проблема с правильной вставкой данных или с их обратным чтением. Вам также необходимо указать вашу версию Pg; форматbytea
по умолчанию изменен сescape
наhex
в 9.0. - person Craig Ringer   schedule 30.10.2012node-postgres
версию вы используете? Похоже, что примерно год назад он поддерживает bytea (github.com/brianc/node -postgres / pull / 38), чтобы вы могли просто передать буфер. - person Craig Ringer   schedule 30.10.2012