📜  如何在 supertest 中上传文件数组 (1)

📅  最后修改于: 2023-12-03 14:52:35.025000             🧑  作者: Mango

如何在 supertest 中上传文件数组

Supertest 是一个 Node.js 中的 HTTP 测试库,用于测试 Express 应用程序。本文将介绍如何在 supertest 中上传文件数组。

首先,我们需要使用 multer 中间件来处理上传的文件。multer 中间件允许我们在请求中上传多个文件,然后将它们保存到磁盘上。

首先,安装 multer

npm install multer

然后,我们可以按照以下步骤在 supertest 中上传文件:

  1. 导入 supertest 和 Express 应用程序:
const request = require('supertest');
const express = require('express');
const multer = require('multer');
  1. 创建上传路由:
const upload = multer({ dest: 'uploads/' });

const app = express();

app.post('/uploads', upload.array('files'), (req, res) => {
  res.send('Files uploaded!');
});

app.listen(3000);

这将创建一个上传路由,使用 multer 中间件将上传的文件保存到 uploads/ 目录中。

  1. 测试文件上传:

使用 Supertest 发送请求并上传文件:

request(app)
  .post('/uploads')
  .attach('files', 'test/testfile1.txt')
  .attach('files', 'test/testfile2.txt')
  .expect(200, done);

这里,我们在请求中上传了 testfile1.txttestfile2.txt 文件,并将它们保存为 "files" 数组。然后,我们断言返回状态码为 200 存在done中。

这就是如何在 supertest 中上传文件数组。我们需要使用 multer 中间件并将上传的文件保存到公共目录中。然后,我们可以使用 Supertest 在请求中上传文件数组。

代码片段
const request = require('supertest');
const express = require('express');
const multer = require('multer');

const upload = multer({ dest: 'uploads/' });

const app = express();

app.post('/uploads', upload.array('files'), (req, res) => {
  res.send('Files uploaded!');
});

app.listen(3000);

request(app)
  .post('/uploads')
  .attach('files', 'test/testfile1.txt')
  .attach('files', 'test/testfile2.txt')
  .expect(200, done);