我想在Node.js中使用postgresql bytea存储PDF

我想在Node.js中使用postgresql bytea存储PDF,node.js,postgresql,bytea,Node.js,Postgresql,Bytea,我想在Node.js中使用PostgreSQL bytea存储PDF 如何通过TEA将PDF转换为数据类型 我的代码是: request.get('https://www.cbconnexus.com/upload/settings/black/data.pdf', function (error, response, body) { if (!error && response.statusCode == 200) { data = "data

我想在Node.js中使用PostgreSQL bytea存储PDF

如何通过TEA将PDF转换为数据类型

我的代码是:

request.get('https://www.cbconnexus.com/upload/settings/black/data.pdf', function (error, response, body) {
    if (!error && response.statusCode == 200) {
        data = "data:" + response.headers["content-type"] + ";base64," + Buffer.from(body).toString('base64');
        console.log(data);
    }
});

一种节点http服务器,接收PDF的post并将其存储在postgresql表中。默认情况下侦听固定IP地址192.168.1.3,端口8888,但您可以将端口指定为第一个参数。 使用pg和强大的

var myArgs = process.argv.slice(2);
var http = require('http');
var fs = require('fs');
var port = 8888;

const { IncomingForm } = require('formidable');

const { Client } = require('pg');
const dbc = new Client({
    host: '127.0.0.1',
    user: 'ghp',
    password: 'zevrepdm',
    database: 'ghp',
    port: 5434,
  });
dbc.connect();

if (myArgs[0]) {
  port = myArgs[0];
}

http.createServer(function (req, res) {
  const chunks = [];

  if (req.url === '/' && req.method.toLowerCase() === 'post') {
      const form = new IncomingForm({ multiples: true });
      form.parse(req, (err, fields, files) => {
        if (files.userfile.type == "application/pdf") {
          var rawData = fs.readFileSync(files.userfile.path) ;
          dbc
            .query(
              'insert into files(name,type,size,data) values ($1,$2,$3,$4)'
              + ' returning name',
              [ files.userfile.name, files.userfile.type, files.userfile.size,
                rawData ]
            ).then(res => {
                var insMessage = 'file ' + res.rows[0].name + ' inserted' ;
                console.log( insMessage );
            }).catch(err => {
                var insMessage = 'Error inserting file ' + files.userfile.name ;
                console.error( insMessage );
                console.error( err.stack );
            });
        }
      });
  }
  req.on('data', chunk => chunks.push(chunk));
  req.on('end', () => {
    res.writeHead(200, [['Content-Type', 'text/html'],
                      ['Cache-Control', 'maxage=120, s-maxage=60, public'],
                      ['X-Accel-Expires', '86400'],
                      ['X-BEVar', req.url] ]);
    res.write('Hello ' + req.headers['user-agent'] + '!<br>');
    res.write('<br>I\'m the one listening on port ' + port + '!<br>');
    res.write("  <FORM ACTION='");
    res.write(req.url);
    res.write("' METHOD='post' enctype='multipart/form-data'> \
                  <input type='hidden' name='MAX_FILE_SIZE' value='128000000'> \
                  <input name='userfile' type='file' size='50'> \
                  <input type='submit' value='Send File'> \
                 </FORM>");
    res.end('Do you know it\'s already ' + Date() + '?');
  })
}).listen(port,"192.168.1.3");
var myArgs=process.argv.slice(2);
var http=require('http');
var fs=需要('fs');
var端口=8888;
const{IncomingForm}=require('embible');
const{Client}=require('pg');
const dbc=新客户端({
主持人:“127.0.0.1”,
用户:“ghp”,
密码:“zevrepdm”,
数据库:“ghp”,
港口:5434,
});
connect();
如果(myArgs[0]){
port=myArgs[0];
}
http.createServer(函数(req,res){
常量块=[];
if(req.url=='/'&&req.method.toLowerCase()==='post'){
const form=新的收入形式({multiples:true});
解析(请求,(错误,字段,文件)=>{
if(files.userfile.type==“application/pdf”){
var rawData=fs.readFileSync(files.userfile.path);
dbc
.查询(
'插入文件(名称、类型、大小、数据)值($1、$2、$3、$4)'
+“返回名称”,
[files.userfile.name,files.userfile.type,files.userfile.size,
原始数据]
)。然后(res=>{
var insMessage='file'+res.rows[0].name+'inserted';
控制台日志(insMessage);
}).catch(错误=>{
var insMessage='插入文件时出错'+files.userfile.name;
控制台错误(insMessage);
console.error(err.stack);
});
}
});
}
请求on('data',chunk=>chunks.push(chunk));
请求开启('end',()=>{
res.writeHead(200,['Content-Type','text/html'],
['Cache-Control','maxage=120,s-maxage=60,public'],
['X-Accel-Expires','86400'],
['X-BEVar',请求url]];
res.write('Hello'+req.headers['user-agent']+'!
'); res.write(“
我是在端口“+port+”!
”上监听的人); res.write(“\ \ \ \ "); res.end('你知道它已经是'+Date()+'?'); }) }).监听(端口,“192.168.1.3”);