Загрузка файла Sails JS; как проверить, является ли файл входным?

Я использую Sails JS v11.05.

Загрузка файла НЕ является обязательным полем.

Как проверить, загрузился файл или нет?

Обычно я использую

if (!req.param('param')) {
   // param does NOT exist - was not uploaded
   // This does not apply to file input params.
}

// However, the following will break as it will start a listener (upstream)
if (!req.file('param')) {
   // File was not uploaded
}

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

Идеи?


person Nizar Blond    schedule 21.10.2016    source источник
comment
Вы должны sails.log(res);. Там наверняка есть что-то, что можно использовать для этого, то есть коды ответов?   -  person Craig van Tonder    schedule 22.10.2016
comment
нет, смотрите мой ответ ниже.   -  person Nizar Blond    schedule 26.10.2016


Ответы (1)


Я так и не смог найти, как это сделать, но мы можем использовать прослушиватель Upstream для загрузки пустого файла, но затем он вернется и очистит uploadedFiles в обратном вызове.

Обратите внимание, что если вы запустите req.file('file_input'), вы можете убить сервер узла, поскольку он вызывает прослушиватель.

Для получения дополнительной информации см. https://www.npmjs.com/package/skipper.

Решение

req.file('file_input').upload(options, function (err, uploadedFiles) {
        if (err) return cb(err);
        if (_.isEmpty(uploadedFiles)) return cb();
        // A file was attached do 
});

person Nizar Blond    schedule 25.10.2016