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

如何将数据库取出的base64字符串还原为原始JS文件

Base64编码的JS文件内容还原方案

方案1:浏览器端还原/下载JS文件

// 从数据库取出的base64内容
const base64Str = "ZXhwb3J0IGRlZmF1bHQgewpsYWJlbDogIlRlc3QgZmlsZSBKUyIsCiAgdmlld0JveDogIjAgMCA4MDAgMTEyMCIsCiAgbG9jYXRpb25zOiBbCiAgICB7CiAgICAgIGlkOiAiMDEiLAogICAgICBwYXRoOgogICAgICAgICJNIDQ0NS43MyA3NDcuNjcgMjA1LjYgNTMzLjQ0IDU3NC4yMiAxIDc5Ny43MyAxOTUuNjMgNzk5IDIwNC43NCA1MzUuNDkgNDkyLjc0IDU5MS44MiA1ODcuMjIgNDQ1LjczIDc0Ny42NyBaIgogICAgfSwKICAgIHsKICAgICAgaWQ6ICIwMiIsCiAgICAgIHBhdGg6ICJNIDEgODE4LjM4IDIwMy4wOCA1MzAuOSA0NDMuMzkgNzQ5Ljc1IDEwNS4yOSAxMTE5LjM4IDEgODE4LjM4IFoiCiAgICB9CiAgXQp9Ow==";

// 1. 转换为原始JS文本
const jsText = atob(base64Str);
// 可直接在控制台打印验证内容和原始文件完全一致
console.log(jsText);

// 2. 如需下载为本地JS文件
const blob = new Blob([jsText], { type: 'application/javascript' });
const downloadUrl = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = downloadUrl;
a.download = 'mapConfig.js'; // 自定义文件名
a.click();
// 释放占用的内存
URL.revokeObjectURL(downloadUrl);

方案2:Node.js端还原/存储JS文件

const fs = require('fs');
const base64Str = "从数据库读取的base64内容";

// 转换为原始JS文本
const jsText = Buffer.from(base64Str, 'base64').toString('utf8');

// 写入为本地JS文件
fs.writeFileSync('./mapConfig.js', jsText, 'utf8');

方案3:直接读取JS模块中的配置对象(无需生成文件)

如果不需要存储为物理文件,想直接使用JS导出的配置内容,可以用以下方式处理:

注意:仅当你完全信任base64内容来源时使用该方案,执行未知来源的JS代码存在XSS等安全风险

const base64Str = "从数据库读取的base64内容";
const jsText = atob(base64Str);

const module = { exports: {} };
// 执行JS代码获取导出的配置
new Function('module', 'exports', jsText)(module, {});
const config = module.exports;

// 可直接使用配置内容
console.log(config.locations);

注意事项

  • 如果存储的JS内容仅为静态配置,建议上传时直接提取内容转为JSON格式存入数据库,后续解析无需执行代码,安全性和性能更好
  • 生产环境如果必须存储和执行动态JS内容,请做好内容签名校验,避免恶意代码被注入执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:45:07