/* * @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} 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), }; }, }, ]);