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

Node.js如何永久修改另一文件导出的javascript对象属性值

解决方法

你当前的写法仅修改了内存中缓存的模块对象,不会自动同步写入磁盘源文件,因此重启进程后修改就会失效,必须借助fs模块手动完成文件写入实现持久化。

具体实现代码

直接复用你原有修改内存对象的逻辑,新增写回文件的逻辑即可:

const fs = require('fs');
const path = require('path');
// 加载原对象
const { Core } = require('./settings/Core.js');

// 修改指定属性,和你原有写法一致
Core['config']['test'] = "MY NEW VALUE";

// 生成和原文件结构一致的代码内容
const newFileContent = `const Core = new Object();

Core['config'] = ${JSON.stringify(Core.config, null, 4)}

// Export the Core
module.exports.Core = Core;
`;

// 拼接绝对路径避免相对路径寻址错误
const coreJsPath = path.resolve(__dirname, './settings/Core.js');
// 写入文件完成持久化
fs.writeFileSync(coreJsPath, newFileContent, 'utf-8');

注意事项

  • 上述代码会完全保留原文件的结构,仅替换config对象内的属性值,不会破坏原有格式
  • 如果后续你给Core对象新增了其他顶层属性,只需要同步调整newFileContent的代码模板即可
  • 如果配置项较多,更推荐将配置抽离为独立的JSON文件存储,读写不需要维护JS模板,稳定性更高:
    1. 新建coreConfig.json,内容为{"config":{"test":"Test"}}
    2. Core.js中改为读取JSON文件导出:
    const coreConfig = require('./coreConfig.json');
    const Core = { config: coreConfig };
    module.exports.Core = Core;
    
    1. 修改时直接读写JSON文件即可,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:09:04