以下是一个使用 Koa 实现接收多个文件的接口的示例:

const Koa = require('koa')
const koaBody = require('koa-body')
const fs = require('fs')

const app = new Koa()

// 配置 koaBody 中间件,用于解析请求体中的文件数据
app.use(koaBody({
  multipart: true,
  formidable: {
    // 设置上传文件的存储路径
    uploadDir: './uploads'
  }
}))

// 定义接收多个文件的路由
app.post('/upload', async (ctx) => {
  // 获取请求体中的文件数据
  const files = ctx.request.files

  // 遍历文件数据,将文件保存到本地
  for (let key in files) {
    const file = files[key]
    const reader = fs.createReadStream(file.path)
    const writer = fs.createWriteStream(`./uploads/${file.name}`)
    reader.pipe(writer)
  }

  // 返回成功响应
  ctx.body = '上传成功'
})

app.listen(3000, () => {
  console.log('Server is running at http://localhost:3000')
})

在该示例中,我们使用了 koa-body 中间件来解析请求体中的文件数据。在路由处理函数中,我们遍历文件数据,将每个文件保存到本地的 './uploads' 目录中。最后返回一个成功响应。


原文地址: https://www.cveoy.top/t/topic/mBo3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录