在Express.js中处理表单提交和文件上传可以使用中间件来处理请求体的解析。对于表单提交,可以使用express.urlencoded()中间件解析以URL编码的请求体,而对于文件上传,则可以使用multer中间件解析和处理文件。

下面是一个示例,展示了如何在Express.js中处理表单提交和文件上传:

  1. 安装所需的依赖:
npm install express multer
  1. 在应用程序中使用中间件来解析表单数据和上传的文件:
const express = require('express');
const multer = require('multer');
const app = express();
 
// 使用express.urlencoded()中间件解析表单数据
app.use(express.urlencoded({ extended: false }));
 
// 使用multer中间件处理文件上传
const upload = multer({ dest: 'uploads/' });
 
// 处理表单提交
app.post('/form', (req, res) => {
  console.log(req.body); // 解析的表单数据
  res.send('Form submitted');
});
 
// 处理文件上传
app.post('/upload', upload.single('file'), (req, res) => {
  console.log(req.file); // 上传的文件信息
  res.send('File uploaded');
});
 
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

在上述示例中,express.urlencoded()中间件用于解析表单数据,multer中间件用于处理文件上传。upload.single('file')表示只处理名为’file’的单个文件上传。解析的表单数据可以通过req.body访问,而上传的文件信息可以通过req.file访问。

需要注意的是,在示例中上传的文件将保存在指定的目录uploads/下。你可以根据自己的需求和配置修改保存文件的路径和文件名。