Express接口如何返回两个Base64调整结果组成的JSON供外部调用
前置配置检查
- 先确保Express已开启JSON请求体解析,在所有路由定义前添加配置,同时调整请求体大小上限适配base64图片的体积:
app.use(express.json({ limit: '10mb' }));
- 确认你引入的
resizebase64方法可用,入参顺序符合你的调用逻辑,同时注意你现有代码里req.body.base64tr大概率是拼写错误,需要和Postman/前端传参的key保持一致。
完整实现代码
Express内置了res.json()方法,会自动设置响应头的Content-Type为application/json,直接传入你要返回的对象即可,同时添加错误捕获避免服务崩溃:
app.post('/api/resizebase64', (req, res) => { try { // 入参校验 const base64str = req.body.base64str; if (!base64str) { return res.status(400).json({ code: 400, msg: '缺少必要参数base64str' }); } // 执行图片缩放 const frontendLogo = resizebase64(base64str, 112, 34); const emailLogo = resizebase64(base64str, 165, 50); // 返回结构化JSON结果 return res.status(200).json({ code: 200, msg: '处理成功', data: { frontendLogo, emailLogo } }); } catch (error) { // 统一捕获处理错误 return res.status(500).json({ code: 500, msg: '图片处理失败', errorInfo: error.message }); } });
如果你用的resizebase64是异步方法,调整为async/await写法即可:
app.post('/api/resizebase64', async (req, res) => { try { const base64str = req.body.base64str; if (!base64str) { return res.status(400).json({ code: 400, msg: '缺少必要参数base64str' }); } const frontendLogo = await resizebase64(base64str, 112, 34); const emailLogo = await resizebase64(base64str, 165, 50); return res.status(200).json({ code: 200, data: { frontendLogo, emailLogo } }); } catch (error) { return res.status(500).json({ code: 500, msg: '处理失败', errorInfo: error.message }); } });
Postman调试说明
- 请求方式选POST,地址填你的服务地址+
/api/resizebase64 - Headers中添加
Content-Type: application/json - Body选择raw,格式切换为JSON,传参示例:
{ "base64str": "你的图片Base64字符串,如果resize方法要求可去掉前缀`data:image/xxx;base64,`" }
内容的提问来源于stack exchange,提问作者Revan
相关产品推荐
相关产品推荐

