node.js - Node Express 上传带有附加数据的文件

标签 node.js express

我是 Node JS 新手,想要创建用于上传图像的 Rest API 并面临这个问题。

我想创建一个包含多个文件和来自输入的附加数据的 post 方法。这是我的代码:

index.js:

app.post('/upload-photos', upload.array('photos'), function (req, res) {
  const uploadInfo = req.files.map(file => {
    return {
      sourceName: file.originalname,
      newName: file.filename
    };
  });
  res.send(uploadInfo);
});

我的问题是我想添加一些表单数据,例如(姓名、地址、电话),有其他人遇到过这种情况吗,请帮助我。

谢谢。

最佳答案

使用multer时,可以通过req.body访问其他字段。

app.post('/upload-photos', upload.array('photos'), function (req, res) {
  const { name, address, phone } = req.body;

  const uploadInfo = req.files.map(file => {
    return {
      sourceName: file.originalname,
      newName: file.filename
    };
  });
  res.send(uploadInfo);
});

在您的表单中:

<form action="/upload-photos" method="post" enctype="multipart/form-data">
  <input type="file" name="photos" multiple />
  <input type="text" name="name" />
  <input type="text" name="address" />
  <input type="text" name="phone" />
</form>

关于node.js - Node Express 上传带有附加数据的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55507424/

相关文章:

javascript - Nodejs Express - methodOverride 不适用于多部分/表单数据

node.js - 指向 Express-Generator 站点中的部分内容

node.js - 请求后动态重定向回同一个url

node.js - ts-node-dev 重新启动服务器时运行脚本

node.js - 接收 PayPal IPN 时未获取任何参数

node.js Express - 如何异步获取部分 View

node.js - ./node_modules/fluent-ffmpeg/index.js 中的错误模块未找到 : Error: Can't resolve './lib-cov/fluent-ffmpeg'

javascript - 在 Javascript 中访问嵌套数据的更好模式

node.js - npm 错误! asyncWrite 不是函数

javascript - 在特定路线之间移动时出错