View on GitHub

easy-db

Lite&easy database for all JavaScript environments.

Easy DB for Google Cloud Storage

Easy DB logo

Lite&easy database for Node.js, based on easy-db-code.

Include types for TypeScript.

Features

API

import easyDB from "easy-db-google-cloud";

const { insert, select, update, remove, file } = easyDB({
  bucketName: "easy-db-test",
  bucketNameFiles: "easy-db-files", // optional, for allUser access to saved files
  keyFilename: "keyFile.json", // optional, for remote development
  cacheExpirationTime: 1000, // optional but recommended, it will save a lot of read requests to cloud
  distanceWriteFileTime: 100, // optional but recommended if you have low limit for create or update files
});

// INSERT
const idOfRow = await insert("collection1", { myRow: 1 });
const idOfRow = await insert("collection1", (id) => ({ id, myRow: 1 }));

// SELECT
const allCollection1 = await select("collection1");
const myRow1 = await select("collection1", idOfRow);

// UPDATE
await update("collection1", idOfRow, { ...myRow1, update: 1 });

// REMOVE
await remove("collection1", idOfRow); // only one row

Example of use

// Save nickname
await update("myAppName", "nickname", nickname);

// Load nickname
const nickname = await select("myAppName", "nickname");

Google cloud configuration

Creating bucket

Get keyFile.json

File saving as url

// Save user with picture
await update("myAppName", "user", {
  name: "Example User",
  // any file in base64
  photo: file("data:image/png;base64,iVB...YI="),
  // or
  photo: {
    type: "EASY_DB_FILE",
    url: "data:image/png;base64,iVB...YI=",
  },
});

// Load with picture
const user = await select("myAppName", "user");
// user = { name: "Example User", photo: { url: "https://.../1f6bef21.png" } }

Files

Update DB without code

Only open file and edit them.

collection1.json

{
  "j9pSCplbMx7U": { "myRow": 1, "update": 1 },
  "ukAK0wN8xvwK": { "myRow": 2, "update": 36 }
}