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
});
});
});