nodeJs formidable, получить конечное имя файла

Всем привет, есть endpoint для заливки файлов на сервер, с помощью formidable (на фронте проверяю чтобы это были только .png файлы), вопрос состоит в том, что в ответе клиенту я хочу отдавать полученное имя файла, а также сохранять имя этого файла в бд и потом обращаться за этим файлом где мне нужно.

Допустим, на входе файл с именем: "43434.png" -> на выходе: "upload_d832456df36f28e2c8538706b2df8523.png", когда срабатывает form.once('end', () => { ... }); отдавать клиенту именно полученное имя файла, можно конечно доставать из file.path строку абсолютного пути, её парсить и отдавать только имя файла, но ведь наверняка есть свойство отвечающее за конеченое имя файла после сохранение. Может кто знает как его вытащить проще всего.

const formidable = require('formidable');
app.post('/upload', (req, res, next) => {
  const form = formidable({
    multiples: true,
    hash: true,
    uploadDir: path.join(__dirname, '../uploadfiles'),
    keepExtensions: true,
  });
  form.parse(req);
  let endFileName = '';
  form.once('error', (error) => {
    next(error);
  });
  form.on('fileBegin', (filename, file) => {
    form.emit('data', {
      name: 'fileBegin',
      filename,
      value: file
    });
  });
  form.on('file', (filename, file) => {
    form.emit('data', {
      name: 'file',
      key: filename,
      value: file
    });
    endFileName = filename;
  });
  form.once('end', () => {
    console.log(form);
    res.status(200).json({
      status: 'success',
      date: new Date(),
      data: endFileName
    });
  });
});


Ответы (0 шт):