我需要打开一个现有的JavaScript文件,检查这个字符串是否存在:
var LocalStrategy = require('passport-local').Strategy;
如果没有,则将其附加到顶部,其余为require()
行。
在另一种情况下,我需要检查该字符串是否存在,如果存在,我想删除该行。
我查看了fs.readFile
,fs.writeFile
,fs.open
,但我认为它无法满足我的需求。有什么建议吗?
答案 0 :(得分:4)
这是一个简化的脚本:
var fs = require('fs');
var search = "var LocalStrategy = require('passport-local').Strategy;";
function append (line) {
line = line || 0;
var body = fs.readFileSync('example.js').toString();
if (body.indexOf(search) < 0 ) {
body = body.split('\n');
body.splice(line + 1,0,search);
body = body.filter(function(str){ return str; }); // remove empty lines
var output = body.join('\n');
fs.writeFileSync('example.js', output);
}
}
function remove () {
var body = fs.readFileSync('example.js').toString();
var idx = body.indexOf(search);
if (idx >= 0 ) {
var output = body.substr(0, idx) + body.substr(idx + search.length);
fs.writeFileSync('example.js', output);
}
}