1.0.0 • Published 4 months ago
google-sheets-sql v1.0.0
GoogleSheetsDB
Библиотека JavaScript/TypeScript для использования Google Sheets как реляционной базы данных. Поддерживает методы CRUD (Create, Read, Update, Delete) и JOIN-запросы, аналогичные SQL.
Основные возможности
- CRUD-операции: Вставка, выборка, обновление и удаление данных.
- JOIN: Объединение таблиц (листов) на основе связей.
- Инициализация таблиц: Создание таблиц с заданными заголовками.
- Поддержка типизации: Полная поддержка TypeScript.
- Простая интеграция: Использует официальную библиотеку
googleapis
.
Установка
Установите библиотеку через npm:
npm install google-sheets-db
Убедитесь, что у вас есть учетные данные для доступа к Google Sheets API:
- Создайте проект в Google Cloud Console.
- Включите доступ к Google Sheets API.
- Скачайте JSON-файл с учетными данными и сохраните его в вашем проекте (например, как
credentials.json
).
Установите зависимости:
npm install googleapis
Использование
1. Инициализация библиотеки
const GoogleSheetsDB = require('google-sheets-db');
const credentials = require('./credentials.json'); // JSON-файл с учетными данными
const db = new GoogleSheetsDB(credentials, 'YOUR_SPREADSHEET_ID');
2. Инициализация таблицы
Создайте таблицу (лист) с указанными заголовками:
await db.initTable('Users', ['id', 'name', 'age']);
await db.initTable('Orders', ['id', 'user_id', 'product', 'quantity']);
3. CRUD-операции
Вставка данных
await db.insert('Users', { id: 1, name: 'John Doe', age: 30 });
await db.insert('Orders', { id: 101, user_id: 1, product: 'Laptop', quantity: 1 });
Выборка данных
const users = await db.select('Users');
console.log(users);
// Выборка с условиями
const youngUsers = await db.select('Users', { age: 30 });
console.log(youngUsers);
Обновление данных
await db.update('Users', { id: 1 }, { age: 31 });
Удаление данных
await db.delete('Users', { id: 1 });
4. JOIN-запросы
Объедините две таблицы на основе связей:
const joinedData = await db.join('Users', 'Orders', 'id', 'user_id');
console.log(joinedData);
5. Пример полного использования
(async () => {
// Инициализация таблиц
await db.initTable('Users', ['id', 'name', 'age']);
await db.initTable('Orders', ['id', 'user_id', 'product', 'quantity']);
// Вставка данных
await db.insert('Users', { id: 1, name: 'John Doe', age: 30 });
await db.insert('Orders', { id: 101, user_id: 1, product: 'Laptop', quantity: 1 });
// Выборка данных
const users = await db.select('Users');
console.log('Users:', users);
// JOIN таблиц
const joinedData = await db.join('Users', 'Orders', 'id', 'user_id');
console.log('Joined Data:', joinedData);
})();
Типизация (TypeScript)
Библиотека поддерживает TypeScript. Для использования импортируйте типы:
import GoogleSheetsDB from 'google-sheets-db';
const credentials = require('./credentials.json');
const db = new GoogleSheetsDB(credentials, 'YOUR_SPREADSHEET_ID');
(async () => {
await db.initTable('Users', ['id', 'name', 'age']);
await db.insert('Users', { id: 1, name: 'John Doe', age: 30 });
const users = await db.select('Users');
console.log(users);
})();
Лицензия
Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.
Автор
Автор библиотеки: Borovlioff
Дополнительные разделы (по желанию)
Требования
- Node.js версии 14 или выше.
- Действующие учетные данные для Google Sheets API.
Помощь и поддержка
Если у вас возникли вопросы или проблемы, создайте issue в репозитории GitHub.
1.0.0
4 months ago