You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中POST请求处理后无法返回解码数据至页面的问题

解决方法

首先你的代码里存在变量名大小写错误:定义的变量是database64,但解码时误用了dataBase64,这会触发ReferenceError,请先修正这个问题。

接下来要把解码后的数据返回给页面,核心是利用Express的响应对象res提供的方法,根据你的前端场景选择对应方式:

1. 返回JSON格式数据(前后端分离场景常用)

如果前端通过AJAX/Fetch发起请求,直接返回JSON数据供前端自行处理渲染:

exports.postEncDec = (req, res, next) => {
    let database64 = req.body.inputENC;
    // 修正变量名
    let decodedBase64 = Buffer.from(database64, "base64").toString("ascii");
    console.log(decodedBase64);
    // 返回JSON格式的解码结果
    res.json({ decodedData: decodedBase64 });
};

2. 返回纯文本数据

若只需直接返回解码后的文本内容:

exports.postEncDec = (req, res, next) => {
    let database64 = req.body.inputENC;
    let decodedBase64 = Buffer.from(database64, "base64").toString("ascii");
    console.log(decodedBase64);
    // 返回纯文本
    res.send(decodedBase64);
};

3. 服务端渲染页面(使用模板引擎时)

如果项目使用EJS、Pug等模板引擎,可将解码数据传入模板,渲染后返回完整页面:

exports.postEncDec = (req, res, next) => {
    let database64 = req.body.inputENC;
    let decodedBase64 = Buffer.from(database64, "base64").toString("ascii");
    console.log(decodedBase64);
    // 假设模板文件名为result.ejs,将解码数据传给模板渲染
    res.render('result', { decodedData: decodedBase64 });
};

额外建议添加错误处理,捕获Base64解码失败的情况,避免接口崩溃:

exports.postEncDec = (req, res, next) => {
    try {
        let database64 = req.body.inputENC;
        let decodedBase64 = Buffer.from(database64, "base64").toString("ascii");
        console.log(decodedBase64);
        res.json({ decodedData: decodedBase64 });
    } catch (err) {
        // 返回错误信息与400状态码
        res.status(400).json({ error: '无效的Base64格式数据' });
    }
};

内容的提问来源于stack exchange,提问作者john

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:20:21