ios - 如何通过我的 Express.js 驱动的 API 将 GridFS 存储文件 (PDF) 最好地提供给连接的客户端 (iOS)?

标签 ios node.js mongodb express gridfs

我正在开发一个让 iOS 客户端连接到它的 REST HTTP API。它当前的设置方式(并使用 POSTman chrome ext 进行了测试)是我发出资源请求,我必须等待整个内容被读入并吐出以显示为响应。

这是 iOS 和 Mac 客户端消费的好方法,还是有更好的方法从 GridFS 提供服务?

我正在做以下事情:

  // Download a PDF
  app.get('/api/download-pdf/:pdf_id', function(req, res){
    var gfs = new mongodb.GridStore(mongoose.connection.db, ObjectID(req.params.pdf_id), "r");
    gfs.open(function(err,gs) {
      if (err){
        res.send(500);
      } 
      else{
        gs.read(function(err,data) {
          res.header('Content-type','application/pdf');
          res.send(data);
          gs.close(function(err) {});
          if (err) throw(err);
        });
      }
    });
  });

最佳答案

Node 驱动程序现在支持流式传输到/从 GridFS http://christiankvalheim.com/post/29753345741/new-features-in-the-driver-for-mongodb-2-2?8e43c3e0

gs.pipe(另一个流)

参见 Streams

关于ios - 如何通过我的 Express.js 驱动的 API 将 GridFS 存储文件 (PDF) 最好地提供给连接的客户端 (iOS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12060755/

相关文章:

ios - validateFunctionArguments :3379: failed assertion `Fragment Function , 纹理的像素格式(MTLPixelFormatRGBA16Unorm)

python - NodeJS 的 OLAP 服务器

mongodb - 如果我不检查错误代码,MongoDB 会自动失败吗?

ios - Xamarin 表单上的 FlexLayout,未填充项目行为?

ios - 如何在 TableViewController 中的 tableview 上方添加图像 - Swift 3

javascript - React 和 FLUX - 我将在 Web 应用程序中的哪里实现服务器例程?

javascript - 使用 MongoDB 连接池的 NodeJS 一次性脚本 - 如何终止?

javascript - 在 GET 响应中看不到 JSON 字段( Mongoose )

ios - UIImageView 覆盖单元格中的文本

javascript - Nodejs 文件行数返回未定义