Я использую грозный для загрузки файлов. после того, как файл полностью загружен, я хочу сделать копии того же размера, используя jimp.
, ранее я вызывал jimp resizer для события form.on('end', ...)
, но кажется, что файл был частично загружен до тех пор и как jimp пытается получить к нему доступ во время загрузки, файл остается поврежденным!
, поэтому определенно мне нужно вызвать jimp после обработки form.on('end', ...)
.
вот что я делаю -
app.post("/upload", function (req, res) {
let form = new IncomingForm()
var file_path, file_name
form.on('fileBegin', (name, file) => {
// process upload here. should be jPG / PNG, smallest edge should be 1200px, compress to 720px and 240px
// save raw file
let dt = new Date()
file_name = dt.getTime() + '.' + file.name.split('.').pop()
file_path = __dirname + '/upload/raw/' + file_name
file.path = file_path
})
form.on('file', function (name, file) {
})
form.on('end', () => {
})
form.parse(req)
resizer(file_path)
res.json(
file_name
)
})
resizer(file_path)
- функция, в которой я выполняю всю обработку jimp. Однако это, кажется, вызывается асинхронно, и, таким образом, файл не существует, когда он вызывается. asyn c await кажется бесполезным, так как этот процесс основан на событиях. Есть ли способ вызвать Resizer после того, как вся обработка сделана? или если есть грозное событие для того же?