Я работаю над веб-приложением, которое включает загрузку изображений в БД с помощью GridFS. Я получил загрузку на работу, однако всякий раз, когда я пытаюсь загрузить загруженные файлы, полученный ответ состоит из нескольких изображений. Я просто хочу получить один. Как бы это исправить?
Если это поможет, я использую 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"));
});