Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js-使用pdfkit将PDF作为BLOB存储并检索到MySQL_Mysql_Node.js_Blob_Pdfkit_Node Pdfkit - Fatal编程技术网

Node.js-使用pdfkit将PDF作为BLOB存储并检索到MySQL

Node.js-使用pdfkit将PDF作为BLOB存储并检索到MySQL,mysql,node.js,blob,pdfkit,node-pdfkit,Mysql,Node.js,Blob,Pdfkit,Node Pdfkit,我很难将PDF内容以BLOB的形式存储到MySQL,并从MySQL中检索回来,然后使用Node.JS将其流式传输到前端 我能够将某些内容保存到数据库中(但不确定是否以正确的方式保存了正确的PDF内容)。当我检索pdf数据时,它不会在pdf阅读器中打开。我尝试将检索到的数据写入一个文件,但它似乎也不起作用。很明显,要么我没有将正确的数据存储到MySQL,要么我没有以正确的方式检索数据 如果你遇到过类似的情况,有人能帮我一下吗 已附上代码供您参考 非常感谢 var PDFDocument = req

我很难将PDF内容以BLOB的形式存储到MySQL,并从MySQL中检索回来,然后使用Node.JS将其流式传输到前端

我能够将某些内容保存到数据库中(但不确定是否以正确的方式保存了正确的PDF内容)。当我检索pdf数据时,它不会在pdf阅读器中打开。我尝试将检索到的数据写入一个文件,但它似乎也不起作用。很明显,要么我没有将正确的数据存储到MySQL,要么我没有以正确的方式检索数据

如果你遇到过类似的情况,有人能帮我一下吗

已附上代码供您参考

非常感谢

var PDFDocument = require('pdfkit');
var doc = new PDFDocument;

var buffers = [];

doc.on('data', function(buff) {
    buffers.push(buff);
});

doc.on('end', function () {

    var queryToExec = "insert pdf_contents  SET ? ";
    var values = {
        id : 0,//Auto Incrementing column
        pdf: buffers.toString()
    };

    mysqlConnection.query(queryToExec, values, function(err, rows) {
        if(!err) {
            console.log("Stored to db successfully");
            var selQuery = "select pdf from pdf_contents order by id desc limit 1"
            mysqlConnection.query(selQuery, function(err_2, rows_2) {
                if(!err_2) {
                    var myPdfDoc = rows_2[0].pdf;
                    console.log("Retrieved successfully, but pdf could not be opened!");
                } else {
                    console.log("Error : ", err_2.toString());
                }
            });
        } else {
            console.log("Error : ", err.toString());
        }
    });
});

doc.addPage().text('Some text...', 100, 100);

doc.end();

不要将文件保存在数据库中。但在我的例子中,我在4个不同的服务器上运行我的node js应用程序,通过Nginx作为面对面服务器进行负载平衡。每个节点js应用服务器将访问一个MySQL服务器,但是,应用服务器将无法相互访问。所以,在我的例子中,我不能将任何东西存储为文件,因为这样做可能会使事情变得复杂(比如查找哪个文件驻留在哪个服务器上)!这类场景的任何解决方案。感谢您的回复。不要将文件保存在数据库中。但在我的例子中,我在4个不同的服务器上运行我的node js应用程序,通过Nginx作为面对面服务器进行负载平衡。每个节点js应用服务器将访问一个MySQL服务器,但是,应用服务器将无法相互访问。所以,在我的例子中,我不能将任何东西存储为文件,因为这样做可能会使事情变得复杂(比如查找哪个文件驻留在哪个服务器上)!这类场景的任何解决方案。谢谢你的回复。