📅  最后修改于: 2023-12-03 14:52:35.025000             🧑  作者: Mango
Supertest 是一个 Node.js 中的 HTTP 测试库,用于测试 Express 应用程序。本文将介绍如何在 supertest 中上传文件数组。
首先,我们需要使用 multer
中间件来处理上传的文件。multer
中间件允许我们在请求中上传多个文件,然后将它们保存到磁盘上。
首先,安装 multer
:
npm install 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);
这将创建一个上传路由,使用 multer
中间件将上传的文件保存到 uploads/
目录中。
使用 Supertest 发送请求并上传文件:
request(app)
.post('/uploads')
.attach('files', 'test/testfile1.txt')
.attach('files', 'test/testfile2.txt')
.expect(200, done);
这里,我们在请求中上传了 testfile1.txt
和 testfile2.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);