首页 > 解决方案 > Node.js, pg (postgresql) - 将纯二进制数据放入 'bytea' 字段

问题描述

我的问题是:将二进制数据放入 'INSERT' PostgreSQL (Node.js + pg) 请求的正确方法是什么?

const req = "INSERT INTO public.product (" +
            "name, doc_name, purchase_price, selling_price, weight, " +
            "id_string, landing_url, img_data, img_name,  active) " +
            "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10);";

const values = [
  obj.product_name, obj.product_doc_name,
  obj.product_purchase_price, obj.product_selling_price, obj.product_weight,
  obj.product_id_string, obj.product_landing_url,
  obj.product_image_data, obj.product_image_name, 'true'
];

'obj.product_image_data'是Express请求正文字段('req.body.product_image_data');

我的“测试”将二进制数据(来自“req.body.product_image_data”)存储到本地服务器端文件是可以的。

console.log("product_image_data lenght: " + obj.product_image_data.length);
//write img data to file
fs.writeFileSync('./TEST.PNG', obj.product_image_data, 'binary');

当然,纯二进制数据“原样”具有如图所示的错误结果。 错误图片

谢谢!

标签: javascriptnode.jspg

解决方案


推荐阅读