I have on abc.js file in node side.Having below content:
abc.js
"use strict";
// Test specific configuration
// ===========================
module.exports = {
port: process.env.PORT || 8101,
api:{xyz:"old"}
}
while using below code to update api->xyz value :
nodetest.js
var fs = require('fs');
var fileName = './abc.js';
var file = require(fileName);
file.api.xyz= "new";
fs.writeFile(fileName, JSON.stringify(file, null, 2), function (err) {
if (err) return console.log(err);
console.log(JSON.stringify(file));
console.log('writing to ' + fileName);
});
I am getting below output in abc.js
{
"port": 8101,
"api":{"xyz":"new"}
}
在覆盖的abc.js中,"使用strict"," module.exports"因此,我怎样才能保持abc.js文件的所有内容具有相同的格式,并且仅保留" xyz"的更改值。值。
期望的输出应该是:
abc.js
"use strict";
// Test specific configuration
// ===========================
module.exports = {
port: process.env.PORT || 8101,
api:{xyz:"new"}
}
答案 0 :(得分:0)
我认为你必须手动添加它们,因为当你require
它们时,你导入文件的唯一东西就是导出(在这种情况下,你要更新的对象) 。)
const output = `
"use strict";
// Test specific configuration
// ===========================
${JSON.stringify(file)}
`
fs.writeFile(fileName, output, ...
否则,您必须使用fs.readFile
,更新生成的字符串,然后将其写入。