如何使用可选文件提交提交Multer表单?

我正在使用Mulder在我的快速应用程序中提交表单。 问题是表单有可选的图像提交选项。 这意味着用户可以添加照片,如果他/她想要,但他/她可以提交没有图像的forms。 图像提交没有问题。 但是,没有形象的时候,即使不是其他领域,也不会提交表格。

const express = require('express'); const router = express.Router(); const Company = require('../controller/CompanyController'); const multer = require('multer'); const path = require('path'); let storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, './public/images/logos'); }, filename: function (req, file, cb) { cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname)); } }); let upload = multer({ storage: storage }).any(); router.route('/companies').post(upload, Company.Create); module.exports = router; 

一个解决方法是在提交完成后检查req.file的值。 如果您没有在表单中提供文件, req.file的值应该是undefined 。 但是,如果你提交一个文件,它应该是一个object 。 因此,你可以这样写一个简单的if语句:

 function Create() { if (req.file !== undefined) { // process image here } // process all other fields } 

希望能帮助到你!