| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- * @Author: helin3
- * @Date: 2024-03-25 13:52:07
- * @LastEditors: helin3
- * @LastEditTime: 2024-03-27 16:46:42
- * @Description: 定义模拟文件上传与下载API接口
- *
- * 模拟接口文件路径遵循规范:`/mock/[模块名]/[功能名].mock.js`
- * 更详细的文档请参考:https://github.com/pengzhanbo/vite-plugin-mock-dev-server
- */
- import { createReadStream } from 'node:fs';
- import { defineMock, backend } from '@/../mock/shared/utils.js';
- /**
- * 模拟API配置集合
- */
- export default defineMock([
- /**
- * 模拟文件下载API
- * @param {string} url - 下载请求地址:'/api/demo/file/download'
- * @param {Array<string>} method - 请求方法:'GET', 'POST'
- * @param {string} type - 预设的文件类型:'temp.txt'
- * @return {ReadableStream} 返回一个读取指定文件的流
- */
- {
- url: `${backend.demoService}/api/demo/file/download`,
- method: ['GET', 'POST'],
- type: 'temp.txt',
- headers: {
- 'Content-Disposition': 'attachment;filename="temp.txt"',
- },
- body: () => {
- // 返回一个指向根目录下mock/demo/download/temp.txt文件的可读流
- return createReadStream('./mock/demo/data/temp.txt');
- },
- },
- /**
- * 模拟文件上传API
- * @param {string} url - 上传请求地址:'/api/demo/file/upload'
- * @param {string} method - 请求方法:'POST'
- * @param {function} body - 处理上传请求体的回调函数,返回上传成功的模拟响应数据
- * @return {Object} 包含上传结果信息的对象,包括状态码、提示信息以及上传文件的原始名称列表
- */
- {
- url: `${backend.demoService}/api/demo/file/upload`,
- method: 'POST',
- body(req) {
- const { body } = req;
- // 模拟处理上传请求并返回上传成功的响应数据
- return {
- code: 0,
- msg: '上传成功',
- files: body.files.map((file) => file.originalFilename),
- };
- },
- },
- ]);
|