App.file — это npm-пакет с помощью которого вы можете быстро начать работу с файлами.
$ npm i app.file
const File = require('app.file');
const Storage = new File('./storage');
Как пример в качестве хранилищя мы будем использовать директорию ./storage
let res = await Storage.add('file1.txt', 'Текст 123');
console.log(res);
В директории ./storage
будет создан файл file1.txt
с содержимым Текст 123
Storage.add('file1.txt', 'Текст 123', (res) => {
console.log(res);
});
{
status: 'good',
path: '/home/storage/file1.txt'
}
В ответе будет передано состояние операции — status
и полный путь — path
{
status: 'error',
error_code: 103,
error_msg: 'Файл с таким именем уже существует!',
path: '/home/storage/file1.txt'
}
В случае успеха status
будет равен good
, в случае ошибки error
error_code | error_msg |
---|---|
100 | Неизвестная ошибка! |
101 | Каталог не найден! |
102 | Файл не найден! |
103 | Файл с таким именем уже существует! |
104 | В текущей директории уже существует каталог с таким именем! |
105 | Файл содержит не правильный JSON! |
Ошибка 104
возникает,
потому что в одной директории не могут одновременно находиться каталог и файл с одним именем.
let res = await Storage.add('file1.txt', 'Текст 123');
Создание произойдет только если файл не существует.
const File = require('app.file');
const Storage = new File('./storage');
Storage.add('file1.txt', 'Текст 123', (res) => {
if (res.status == 'error') {
console.log('Ошибка! '+res.error_msg);
return;
}
console.log('Файл успешно создан!');
});
//=> Файл успешно создан!
let res = await Storage.set('file1.txt', 'Новый текст 789');
Запись произойдет только если файл существует.
const File = require('app.file');
const Storage = new File('./storage');
Storage.set('file1.txt', 'Новый текст 789', (res) => {
if (res.status == 'error') {
console.log('Ошибка! '+res.error_msg);
return;
}
console.log('Данные успешно записаны!');
});
//=> Данные успешно записаны!
let res = await Storage.get('file1.txt');
Чтение произойдет только если файл существует.
const File = require('app.file');
const Storage = new File('./storage');
Storage.add('file1.txt', 'Текст 123');
Storage.get('file1.txt', (res, content) => {
if (res.status == 'error') {
console.log('Ошибка! '+res.error_msg);
return;
}
console.log(content);
});
//=> Текст 123
let res = await Storage.del('file1.txt');
Удаление произойдет только если файл существует.
const File = require('app.file');
const Storage = new File('./storage');
Storage.del('file1.txt', (res) => {
if (res.status == 'error') {
console.log('Ошибка! '+res.error_msg);
return;
}
console.log('Файл успешно удален!');
});
//=> Файл успешно удален!
let res = await Storage.readdir('./example_dir');
const File = require('app.file');
const Storage = new File('./storage');
Storage.readdir('./example_dir', (res, files) => {
if (res.status == 'error') {
console.log('Ошибка! '+res.error_msg);
return;
}
files.forEach(file => {
if (file.isSymbolicLink()) {
console.log('Ссылка | '+ file.name);
}
if (file.isDirectory()) {
console.log('Каталог | '+ file.name);
}
if (file.isFile()) {
console.log('Файл | '+ file.name);
}
});
//=> Файл | file1.txt
//=> Файл | file2.txt
//=> Файл | file3.txt
//=> Каталог | directory1
//=> Каталог | directory2
});
Формат файлов по умолчанию всегда равен text
, то есть текстовый файл.
Эти строки будут работать одинаково:
const Storage = new File('./storage');
const Storage = new File('./storage', 'text');
Вы также можете задать в качестве формата json
const Storage = new File('./storage', 'json');
const File = require('app.file');
const Storage = new File('./storage', 'json');
Storage.add('file1.json', {name:'Mick', level:5});
Storage.get('file1.json', (res, json) => {
console.log(json);
});
//=> { name: 'Mick', level: 5 }
Storage.set('file1.json', {name:'Jonni', level:6});
Storage.get('file1.json', (res, json) => {
console.log(json);
});
//=> { name: 'Jonni', level: 6 }
Как мы видем данные автоматически конвертируются в json