背景
由于最近我正在做一个个人博客系统,而顾名思义,其实博客系统最重要的就是写博客这一关。
那么怎么更好地写博客呢?要我说啊,那肯定是做一个管理后台系统,然后通过这个系统去实现创建、编辑、管理我的博客。
所以我也得开始写我这个博客管理系统的后端接口了。
上传接口
一篇好的博客肯定是图文并茂的,所以我需要写上传图片接口,差不多是以下代码:
const express = require('express');
const server = express();
const fs = require('fs');
const multer = require('multer');
const bodyParser = require('body-parser');
//配置静态资源文件
server.use(express.static(__dirname + "/public"));
server.use(bodyParser.urlencoded({ extended: false }));
server.use(multer({ dest: '/tmp/' }).array('file'));
const SAVE_BASE_PATH = `${__dirname}/public/`
// 封装单文件存储函数
const saveFile = (file) => {
const { originalname, path } = file
return new Promise((resolve, reject) => {
const fileUrl = `${SAVE_BASE_PATH}${originalname}`; //文件名
fs.readFile(path, (err, result) => {
fs.writeFile(fileUrl, result, (err => { //文件写入
if (err) {
reject(err)
} else {
resolve(originalname)
}
}))
})
})
}
server.post('/blog/image/upload', async (req, res) => {
// promise.all实现并发存储
const filenames = await Promise.all(req.files.map(saveFile))
const response = {
message: 'File uploaded successfully',
filenames
};
// 返回响应信息
res.send(response)
})
server.listen(3006, err => {
err ? console.log(err) : console.log('server http:127.0.0.1:3006');
})
使用 Postman 调试上传接口
写一个后端接口,肯定离不开后续的调试,所以我使用了 Postman 来进行上传图片接口的调试,调试步骤也很简单:
- 第一步:填写请求 URL
- 第二步:选择请求类型
- 第三步:选择发送文件
- 第四步:点击发送按钮
- 第五步:拿到响应结果
Postman 不支持多文件上传?
我在使用 Postman 调试接口过程发现一个弊端:
- Postman 不支持多文件上传
这可是一个非常严重的弊端啊,一篇博客可能不止上传一张图片,可能会上次十几张图片呢!!!!!
Apifox 支持多文件上传
于是我更换了 Apifox 进行上传图片接口的调试,其实它的调试流程跟 Postman 几乎一致,只是 Apifox 是支持多文件上传的!!!
- 第一步:填写请求 URL
- 第二步:选择请求类型
- 第三步:选择发送文件(支持多文件选择上传)
- 第四步:点击发送按钮
- 第五步:拿到响应结果
总结
最终我的上传图片接口总算是调试完成了~
Apifox 在不更改我使用习惯的情况下,支持了多文件上传,真是解决了我的一大难题!点击免费使用。