#node.js #express #multer
#node.js #выразить #multer
Вопрос:
У меня есть сценарий, в котором в таблице с двумя столбцами есть несколько строк — один столбец соответствует файлу, а другой столбец соответствует дате, которую может выбрать пользователь.
Единственный способ, которым я смог выяснить, был похож на приведенный ниже — иметь тот же ключ для файла и соответствующую ему дату.
Но проблема здесь в моем коде nodejs
router.post('/dosomething', upload.fields([
{ name: 'testdata1', maxCount: 1 },
{ name: 'testdata2', maxCount: 1 }
]), function (req, response) {
console.log(req.files); //returns both file details
console.log(req.body.testdata1); // returns date of testdata1
console.log(req.body.testdata2); //returns date of testdata2
response.json("do nothing");
})
Ограничение на то, сколько может быть загружено, не является гибким. Учтите, что возможно 10-15 загрузок, мне нужно было бы иметь 15 разных ключей, например, как у меня testdata1 и testdata2, что, на мой взгляд, не является хорошим вариантом. Не могли бы вы подсказать, есть ли альтернативный способ добиться этого?
Ответ №1:
Одна из возможностей — сначала принять все файлы с помощью upload.any()
, а затем проверить, что было получено, в порядке. Таким образом, вы должны проверить, что количество testdataX в req.body равно количеству полученных файлов.
router.post("/dosomething", upload.any(), function (req, res) {
// validate testdataX's in req.body match req.files.length
// continue with processing...
});