我在文件中有很多bash / shell变量,我想将它们读入node.js脚本(或者我猜是javascript)来评估它们并设置javascript变量。
e.g。该文件包含:
gateway_ip = 192.168.1.1
掩模= 255.255.255.0
端口= 8080
我尝试了以下内容:
function readConfigFile() {
var filename="/home/pi/.data-test";
fs.readFile(filename, 'utf8', function(err, data) {
var lines = data.split('\n');
for(var i = 0; i < lines.length-1; i++) {
console.log(lines[i]);
eval(lines[i]);
console.log(gateway_ip);
}
});
}
并且它将行作为文本吐出,但我似乎无法生成javascript变量。错误是:
未定义:1 default_gateway = 192.168.1.1
我在这里错过了一些明显的东西吗?
答案 0 :(得分:1)
你在这里做的是eval('gateway_ip=192.168.1.1')
。
192.168.1.1
无效的javascript。它应该有引号。试试这个:
var lines = data.split('\n');
var options = {};
for(var i = 0; i < lines.length-1; i++) {
var parts = lines[i].split('=');
options[parts[0].trim()] = parts.slice(1).join('=').trim();
}
// You now have everything in options.
您可以使用global
代替options
在全局范围内设置这些变量。
答案 1 :(得分:0)
这不是JavaScript-ish。更简单的方法是使用JSON作为配置文件。例如,使用此config.json
:
{
"gateway_ip": "192.168.1.1",
"mask": "255.255.255.0",
"port": "8080"
}
然后你可以简单地require
:
var config = require('./config.json');
console.log(config);
另外一个好处是,它还会捕获JSON文件中的格式错误。