我正在开发一个Web应用程序,该应用程序涉及使用GridFS将图像上传到DB。我已经可以上载了,但是,每当我尝试下载上载的文件时,得到的响应都包含多个图像。我只想买一个。我该如何解决?
如果有帮助,我正在使用GridFS,Mongoose,gridfs-stream和Express。
编辑:我尝试下载所获得的图像,所下载的是两张图像,而不是我想要的一张图像。
mongoose.connect("mongodb://localhost:27017/formImgs", { useMongoClient: true });
var conn = mongoose.connection;
Grid.mongo = mongoose.mongo;
conn.once("open", () => {
var gfs = Grid(conn.db);
for(var i = 0; i < fileNames.length; i++){
var filesrc = path.join(__dirname, "./photos/" + fileNames[i]);
var writeStream = gfs.createWriteStream({
filename: fileNames[i],
contentType: "image/png"
});
fs.createReadStream(filesrc).pipe(writeStream);
writeStream.on("close", (file) => {
console.log("Done uploading!");
});
}
app.get("/", (req, res) => {
gfs.files.findOne({filename: "LaptopRegistry.png"}, (err, file) => {
var readStream = gfs.createReadStream(file.filename);
readStream.pipe(res); // Multiple images are returned when I use this
});
});
app.get("/image/:filename", (req, res) => {
gfs.files.findOne({filename: "LaptopRegistry.png"}, (err, file) => {
var readStream = gfs.createReadStream(file.filename);
return res.json(file); // i get only one JSON when I run this
});
});
app.listen(5000, () => console.log("Server started on port 5000"));
});