使用nodejs

时间:2017-10-18 19:02:31

标签: javascript angularjs node.js

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"}
}

1 个答案:

答案 0 :(得分:0)

我认为你必须手动添加它们,因为当你require它们时,你导入文件的唯一东西就是导出(在这种情况下,你要更新的对象) 。)

const output = `
"use strict";
// Test specific configuration
// ===========================
${JSON.stringify(file)}
`
fs.writeFile(fileName, output, ...

否则,您必须使用fs.readFile,更新生成的字符串,然后将其写入。