我正在尝试构建命令行应用程序,以便阻止ip(或其他)我不需要更新conf文件。为此,我需要在conf文件中的特定位置插入一行特定的代码。我知道CLI部分。任何人都可以帮我插入部件吗? 我写了如下代码,但是写了一些胡言乱语!
#!/usr/bin/env node
var cli = require('cli');
var fs = require('fs');
cli.parse({
block: ['b', 'Block the ip:port'],
ip: ['i', 'provide ip address', 'string', ''],
port: ['p', 'provide port number', 'int', 0],
});
cli.main(function(args, options)
{
if(options.block)
{
fs.readFile('nginx.conf', function(err, data) {
if(err) throw err;
data = data.toString();
var array = data.toString().split("\r\n");
array[4] ='deny ' + cli.getValue(options.ip) + ':' + cli.getValue(options.port);
for(i = 0; i < array.length ; i++) {
fs.writeFile('nginx1.conf', array[i]+'\r\n', function () {})
};
});
}
});
答案 0 :(得分:0)
for循环中的回调不是一个好主意。试试这段代码 -
fs.readFile('nginx.conf', function(err, data) {
if(err) throw err;
//data = data.toString();
var array = data.toString().split("\n");
array[4] ='deny '+cli.getValue(options.ip)+':'+cli.getValue(options.port);
for(i=0;i<array.length;i++) {
fs.appendFileSync('nginx1.conf', array[i]+'\n');
}
});