javascript - 如何将 Buffer 对象转换为 Node.js 中的文件?

标签 javascript mysql angularjs node.js

我正在使用 (MySQL)EAN 堆栈开发 Web 应用程序。我在 MySQL 中将 png/jpg/pdf 保存为 BLOB。现在,我可以使用 Sequelize.js 在 Node.js 中将它们检索为 Buffer 对象:

exports.loadUploadedFiles = function(req, res) {
    db.File.findAll().success(function(files) {
       //res.send(files[0].dataValues.data.toString('ascii')); // I have tried to convert a Buffer to ascii and sent it to Angular.js, however, I still don't know how to transform them to a file link.
       res.send(files); // How can I return the Buffer objects to Angular.js
    }).error(function(err) {
        console.log(err);
        res.sendStatus(500);
    });
};

我尝试了两种方法:

  • 将缓冲区对象返回给 Angular.js,然后找到一种方法从它们生成可下载链接。

  • 使用 bufferObject.toString('ascii') 将 Buffer 对象转换为 ascii,然后找到将这些 ascii 转换为可下载链接的方法

我已经尝试了一天,但仍然无法在两种方法中弄清楚:(,任何建议将不胜感激!

最佳答案

我认为#1 是最佳选择。 将缓冲区转储到文件系统上可公开访问的目录中的文件可能是最好的选择。

FileSystem Write in Node

关于javascript - 如何将 Buffer 对象转换为 Node.js 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723894/

相关文章:

javascript - 将 Json 写入现有文件 .json,不带 "syntax errors"

AngularJS:避免使用 $location 进行 url 编码

javascript - 如何将 Angular UI Bootstrap Accordion 分成多列?

javascript - HTML5 必需属性不适用于 AJAX 提交

javascript - 从 webkitdirectory 元素获取绝对路径

mysql - 来自 MySQL JDBC river 的 Elasticsearch 过滤结果

Java - 如何从 phpMyAdmin 获取电子邮件地址并使用 javamail 发送

mysql - phpmyadmin 上的重复条目

javascript - Angular UI 路由器权限/访问控制

javascript - jquery 如果复选框被选中,结果警报不起作用