чтение файла из mongodb возвращать один и тот же файл каждый вызов - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь прочитать файл из моей базы данных, и по какой-то причине он возвращает один и тот же файл каждый раз, не учитывая имя файла, которое я пытаюсь получить.

НАЗАД:

router.post('/', (req, res) => {
    mongoose
        .connect('mongodb://dbname.mlab.com:12345/db', {
            auth: 
                {
                    user: 'user',
                    password: 'pw'
                }
        })
        .then(() => {
            console.log('connection successful')
            var gridfs = require('mongoose-gridfs')({
                collection:'fs',
                model:'files',
                mongooseConnection: mongoose.connection
            });

            Attachment = gridfs.model;


            // large file example
            var stream = Attachment.readByFileName(req.body.imageName);
            console.log(stream)

            stream.on('data', (image) => {
                base64data += image.toString('base64'); // converting buffer to base64 string
                base64data = base64data.replace('undefined', '');
                console.log(base64data)
            });
            stream.on('close', () => {
                res.send(base64data)
            });

        })
        .catch((err) => console.error(err));
})

ПЕРЕДНЯЯ ЧАСТЬ:

getImageBuffer = (imageName) => {
  this.forceUpdate();
  console.log('this is the image im fatching', imageName)
  axios
    .post('https://myserver.com/readCarImg', {
      imageName: imageName
  })
  .then((res) => {
    this.setState({
      imageBuffer:`data:image/jpg;base64,${res.data}`
    })
  })
  .catch((e) => {
    console.log('there was problem getting image buffer', e)
  })
}

УДАЛЕНИЕ ИЗОБРАЖЕНИЯ ИЗ СОСТОЯНИЯ:

  showModalMarker = () => {
      this.setState({
        imageBuffer: undefined
      })
  }

ПРИМЕЧАНИЕ. Я регистрируюсь imageNameчтобы быть уверенным, что я получаю разные имена каждый раз, и я.А также я удаляю строку Image из состояния перед каждым новым вызовом, чтобы убедиться, что она очищена.И я регистрирую ответ от сервера и могу подтвердить, что один и тот же буфер возвращается каждый раз.Я использую gridfs для хранения изображений в моем моноблоке, если это имеет какое-то значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...