![](/img/trans.png)
[英]How to save mongodb findone value to a javascript variable to use it later on nodejs
[英]How to save an array to file and later read it into an array variable in nodejs/JavaScript?
在nodejs中,我想将一些数据读入一个数组,该数组先前已保存到文件中。 原始数据以数组的形式构造。 例:
let arr = [
'id-001': [ '123', '246', '234' ],
'id-002': [ '789', '235' ],
... and so on
];
像这样保存:
fs.writeFileSync(dirpath + 'data.txt', arr);
这部分工作正常。 该文件包含以下字符串:
[
'id-001': [ '123', '246', '234' ],
'id-002': [ '789', '235' ],
... and so on
]
现在我以为我可以读文件
let data = fs.readFileSync(filePath, 'utf8');
...这样可行...
并做类似的事情
eval('let arr = ' + data);
要么
let arr = eval(data);
甚至
const vm = require('vm')
let arr = vm.runInNewContext(arr, {data})
还有更多。 什么都没有。 它的行为很奇怪,似乎什么也没发生,评估之后的代码似乎没有执行。 没有错误。
有什么问题吗? 有没有更好的办法?
您可以在读取文件后使用JSON.parse
解析文件内容,这应该可以使其工作。
此外,您将希望保留数据的JSON.stringify
ed表示形式。
这是显示整个过程的最小示例:
const fs = require('fs');
function write(array, path) {
fs.writeFileSync(path, JSON.stringify(array));
}
function read(path) {
const fileContent = fs.readFileSync(path);
const array = JSON.parse(fileContent);
return array;
}
write(['a', 'b'], '/my/path/test.txt');
const arr = read('/my/path/test.txt');
console.log(arr);
编写文件时,应将其stringify
:
fs.writeFileSync(dirpath + 'data.txt', JSON.stringify(arr));
然后,您只需要将文件中的字符串数据parse
回javascript对象
let data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
首先纠正您的阵列并写入/读取文件
const fs = require('fs');
let dir = './data.txt';
let arr = {'id-001': [ '123', '246', '234' ],
'id-002': [ '789', '444' ]};
fs.writeFileSync(dir, JSON.stringify(arr));
let data = fs.readFileSync(dir, 'utf8');
console.log(data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.