Javascript 图像在Node.js中不使用GridFS显示服务图像

Javascript 图像在Node.js中不使用GridFS显示服务图像,javascript,node.js,mongodb,buffer,gridfs,Javascript,Node.js,Mongodb,Buffer,Gridfs,我正在从AFFS中获取一个png文件,并将其保存到GridFS,然后我希望能够在某个时候检索它。出于好奇,我在图像进入GridFS之前记录了它,它看起来像 <89504e47 0d0a1a0a 0000000d 49484452 00000074 0000008c 08020000 0022391a ...> 在浏览器中查看时,它看起来就像一个空的或断开的图像链接。如果我检查页面源代码,它似乎只是 如果我从来没有设置标题,它只会显示为数百行 <89504e47 0d0a1

我正在从AFFS中获取一个png文件,并将其保存到GridFS,然后我希望能够在某个时候检索它。出于好奇,我在图像进入GridFS之前记录了它,它看起来像

<89504e47 0d0a1a0a 0000000d 49484452 00000074 0000008c 08020000 0022391a   ...>
在浏览器中查看时,它看起来就像一个空的或断开的图像链接。如果我检查页面源代码,它似乎只是

如果我从来没有设置标题,它只会显示为数百行

<89504e47 0d0a1a0a 0000000d 49484452 00000074 0000008c 08020000 0022391a   ...>
我觉得我没有把缓冲区转换成正确的东西

var http = require('http'),
   MongoDB = require("mongodb"),
   MongoClient = require("mongodb").MongoClient,
   GridStore = require("mongodb").GridStore;

http.createServer(function (req, res) {
    console.log("Serving request for file: " + req.url);
    MongoClient.connect("mongodb://localhost:27017/test", {}, function(err, db) {
        gridStore = new GridStore(db, req.url, "r");
        gridStore.open(function(err, gs) {
            if (err) {
                console.log("error in open: " + err);
                return;
            }

            res.writeHead(200, {'Content-Type': 'image/png'});
            var s = gs.stream(true);
            s.pipe(res);
        });
    });

}).listen(8124, "127.0.0.1");

console.log('Server running at http://127.0.0.1:8124/');
我可以使用上面粘贴的代码成功地运行服务器并将png文件成功地提供给浏览器。然而,因为您是说,当您查看源代码时,源代码的原始内容确实会出现在客户端。我建议尝试一下我写的代码,看看是否有同样的问题

var http = require('http'),
   MongoDB = require("mongodb"),
   MongoClient = require("mongodb").MongoClient,
   GridStore = require("mongodb").GridStore;

http.createServer(function (req, res) {
    console.log("Serving request for file: " + req.url);
    MongoClient.connect("mongodb://localhost:27017/test", {}, function(err, db) {
        gridStore = new GridStore(db, req.url, "r");
        gridStore.open(function(err, gs) {
            if (err) {
                console.log("error in open: " + err);
                return;
            }

            res.writeHead(200, {'Content-Type': 'image/png'});
            var s = gs.stream(true);
            s.pipe(res);
        });
    });

}).listen(8124, "127.0.0.1");

console.log('Server running at http://127.0.0.1:8124/');