2016-09-05 3 views
0

У меня есть массив в Node.js:Сохранить значение массива в файле

QL = [[],[],[],[]]; 

время после времени, я хочу, чтобы сохранить информацию в файл. Я запускаю программу узла, если файл существует, я хочу загрузить массив из него.

Как это сделать?

ответ

0

Отчасти зависит от того, как вы хотите сохранить его в файле. Вы можете вызвать модуль файловой системы, родной из nodeJS, который делает много вещей с файлом.

Перед этим, чтобы проверить, существует ли файл, вы можете использовать fs.stat, передавая имя файла, проверяя обратный вызов.

Итак, скажем, вы хотите просто сохранить массив как есть. Вы можете передать его аргументом как это:

const fs = require("fs"); 

let array = [[1,2,3],[34,9,10,50],[1,2,3]]; 

fs.writeFile('save1.txt',array,(data)=>{ 
console.log('done'); 
}); 

Но если хотите, чтобы сделать некоторую обработку для каждой основной позиции массива, может быть, вам нужно перебрать этот массив и вызвать ту же функцию, каждый раз.

Более подробную информацию можно найти на NodeJS файловой системы документации https://nodejs.org/api/fs.html

1

Вы можете попробовать этот простой способ сохранить все элементы массива

var fs = require('fs'); 
var arr = [ [ 'text1' ],[ 'text2', 'text34','text444'],[ 'text3243', 'abc' ]] 

var file = fs.createWriteStream('newFile.txt'); 
file.on('error', function(err) { /* Use error handler */ }); 
arr.forEach(function(item) { file.write(item.join(',') + '\n'); }); 
file.end(); 

Здесь все элементов массива добавляющим в каждой новой строке файла

0

Существуют различные способы его обработки. Вы можете попробовать outputJson от fs-extra или через модуль json-update.

Вот пример экономии:

require('json-update').update('data.json',{array:[[10,20],[1,2]]}).then(function(dat) { 
    console.log(dat.test) 
}); 

Вот пример загрузки: (файл должен существовать)

require('json-update').load('data.json', function(err, arr) { 
    console.log(arr.array); 
}); 

Отмечают с json-update он должен быть объект со свойствами, а не только простой массив. outputJson от fs-extra не нуждается в этом (но json-update имеет механизм блокировки для одновременного доступа к нескольким процессам).

Смежные вопросы