app.file

1.0.6 • Public • Published

Что это?

App.file — это npm-пакет с помощью которого вы можете быстро начать работу с файлами.

Установка

$ npm i app.file

Подключение

const File = require('app.file');
const Storage = new File('./storage');

Как пример в качестве хранилищя мы будем использовать директорию ./storage

Использование как Promise

let res = await Storage.add('file1.txt', 'Текст 123');
console.log(res);

В директории ./storage будет создан файл file1.txt с содержимым Текст 123

Использование как Callback

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 возникает, потому что в одной директории не могут одновременно находиться каталог и файл с одним именем.

Storage.add — Создание файла

let res = await Storage.add('file1.txt', 'Текст 123');

Создание произойдет только если файл не существует.

Пример #1

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('Файл успешно создан!');
});
//=> Файл успешно создан!

Storage.set — Запись в файл

let res = await Storage.set('file1.txt', 'Новый текст 789');

Запись произойдет только если файл существует.

Пример #2

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('Данные успешно записаны!');
});
//=> Данные успешно записаны!

Storage.get — Чтение из файла

let res = await Storage.get('file1.txt');

Чтение произойдет только если файл существует.

Пример #3

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

Storage.del — Удаление файла

let res = await Storage.del('file1.txt');

Удаление произойдет только если файл существует.

Пример #4

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('Файл успешно удален!');
});
//=> Файл успешно удален!

Storage.readdir — Чтение каталога

let res = await Storage.readdir('./example_dir');

Пример #5

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
});

Формат — JSON

Формат файлов по умолчанию всегда равен text, то есть текстовый файл.

Эти строки будут работать одинаково:

const Storage = new File('./storage');
const Storage = new File('./storage', 'text');

Вы также можете задать в качестве формата json

const Storage = new File('./storage', 'json');

Пример #6

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

Package Sidebar

Install

npm i app.file

Weekly Downloads

6

Version

1.0.6

License

none

Unpacked Size

49.6 kB

Total Files

8

Last publish

Collaborators

  • classtype