我想通过 nodejs 服务器将 multipart/form-data 从客户端发送到 postgresql 在 nodejs 中我使用的是 express-form-data 模块。服务器代码:
var formData = require("express-form-data");
var BodyParser=require('body-parser');app.use(BodyParser.json()).use(formData.parse()).use(formData.format()).use(formData.stream()).use(formData.union());
app.post('/create-user',function(req,res){
var username=req.body.username;
var password=req.body.password;
..........................
var img=(req.files.pic).toString('HEX')+'\\x';
pool.query('INSERT into "Users" (username,password,"full
name","D.O.B",emailid,sex,img) VALUES ($1,$2,$3,$4,$5,$6,$7)',
[username,hashpass,name,dob,email,sex,img],function(err,result){ if (err) {
res.status(500).send(err.toString());
很明显,我已经为图像数据设置了 bytea 类型。我试过这个跳过图像输入,并且所有其他字段都已成功插入。但我不明白将图像插入 postgres 的逻辑。我已经搜索了其他 stackoverflow 答案,但我找不到如何将图像数据转换为 bytea 类型。我的数据库和 nodejs 设置为 UTF8 编码。在将 img 转换为十六进制字符串时,如代码片段所示,我收到错误:bytea 类型的输入语法无效
如果没有转换完成错误,例如:数据库服务器拒绝连接,nodejs控制台说发送后无法设置标头。