'файл не найден' при попытке получить файл gridFS из mongodb

Я пытаюсь прочитать свои файлы, которые я загрузил в mongodb, и каждый раз получаю file not found, когда явно есть файл с именем, которое я пытаюсь найти в моей базе данных. Я использовал метод это для реализации gridfs

КОД:

    let mongoose = require('mongoose');
    let gridfs = require('gridfs-stream');

    const express = require('express');
    const router = express.Router();

    mongoose.connect('mongodb://foo123.mlab.com:123456/db_name', {
        auth: {
          user: 'username',
          password: 'password'
        }
      })
      .then(() => console.info('connection successful'))
      .catch((err) => console.error(err));

    mongoose.Promise = global.Promise;
    gridfs.mongo = mongoose.mongo;
    let connection = mongoose.connection;

    connection.on('error', console.error.bind(console, 'connection error:'));

connection.once('open', () => {
    var gfs = gridfs(connection.db);
    router.post('/' ,(req, res) => {
        gfs.exist({ filename: '6866866-Tue-May-29-2018.jpg' }, function (err, file) {
            if (err || !file) {
                console.info(err)
                res.send('File Not Found');
            } else {
                let readstream = gfs.createReadStream({ filename: '6866866-Tue-May-29-2018.jpg' });
                readstream.pipe(res);
            }
        });
    })
})

module.exports = router;

файл из БД, который я пытаюсь получить:

{
    "_id": {
        "$oid": "5b0d2xxxxxxxxxx14cfb118"
    },
    "length": 641142,
    "chunkSize": 261120,
    "uploadDate": {
        "$date": "2018-05-29T10:39:37.568Z"
    },
    "md5": "c9bc6d74axxxxxxxxxxxx25a70",
    "filename": "6866866-Tue-May-29-2018.jpg",
    "contentType": "image/jpeg"
}

Из любопытства, что попадает в журнал консоли? Что содержит "err"?

Danielle Summers 29.05.2018 14:06
null ошибки нет, только ответ с File Not Found
obiwankenoobi 29.05.2018 14:08

«Файл не найден» - вот ваше сообщение. Логика, которая привела вас туда, я считаю неправильной. Мой Javascript заржавел, но я не думаю, что вы сможете успешно определить, является ли 'err' нулевым или нет. Но счастлив ошибаться.

Danielle Summers 29.05.2018 14:16

Вы можете объяснить? функция говорит в основном, что если нет объекта file или есть ошибка в пути, отправьте File Not Found довольно прямо

obiwankenoobi 29.05.2018 14:18

Попробуйте переписать функцию как: if (! File) {console.info (err) ...} else {....} и посмотрите, что из этого получится.

Danielle Summers 29.05.2018 14:24

нет, тот же результат :(

obiwankenoobi 29.05.2018 14:25

Игнорируя логику If / Else, действительно ли она работает, когда вы вызываете gfs.createReadStream ()? Возможно, что-то происходит на уровне базы данных, прав доступа и т. д.?

Danielle Summers 29.05.2018 14:32

ну, я так не думаю, поскольку он не доберется до этой части, он вызовет res.send и завершит функцию.

obiwankenoobi 29.05.2018 14:35

Вы уверены, что при тестировании используете POST-запрос? Есть ли у вас другие обработчики маршрута '/'?

PeterVC 29.05.2018 14:41

Я пробовал использовать mLab, он отлично работает с тем же фрагментом кода, который вы использовали pastebin.com/raw/N1qEB4q2. Вы пишете и читаете из одной и той же БД? Разместите полный код пишите и читайте.

Şivā SankĂr 14.07.2018 07:46
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
10
1 301
0

Другие вопросы по теме