首页 > 解决方案 > 如何使用 nodejs 脚本读取文件并在特定行更新文件

问题描述

我想创建一个节点脚本来生成一组文件夹和文件,并向它写入一些起始代码,就像我们有来自 angular 的 cli 命令一样。我有一个名为的文件screen_names.js,每当通过运行命令创建新屏幕时,都会npm run feature [featureName]在可能的应用程序的功能文件夹中创建一个包含一些子文件夹和文件的文件夹,我想在文件中的所有其他导入语句之后添加和导入语句和在文件中的所有其他导出语句之后添加导出状态。

import Input from '../features/Input/containers'
import Segment from '../features/segment/containers'
....
// add an import state here

export {
...,
    Input,
    Segment,
// add export component name here
}

我怎样才能读取这个文件并附加到适当的位置,然后在 javascript 中再次保存文件。

标签: javascriptnode.jsnpm-scripts

解决方案


您可以使用模块逐行读取文件readline并检查要更新的特定条件,一旦读取所有数据,然后使用模块将其写入同一文件fs

index.js

var output = "";
var fs = require('fs');
var lineReader = require('readline').createInterface({
  input: require('fs').createReadStream('file.txt')
});

lineReader.on('line', function (line) {
  if(CONDITON_TO_CHECK_FOR_UPDATE){

  }
  output += line + "\n";
});

lineReader.on('close', function (line) {
  fs.writeFile('file.txt', output, function(err, data){
    if (err) console.log(err);
    console.log("Successfully Written to File.");
});
});

推荐阅读