easy-db-server
v3.0.0
Published
Lite&easy database for Node.js.
Downloads
51
Maintainers
Readme
REST API server based on Easy DB
Lite&easy database REST server based on easy-db-node
without any necessary configuration.
Include types for TypeScript.
Features
- The same interface in Node, Web, Mobile, Server or your own environment.
- Handling saving and removing files directly in easy-db.
- Easy reading and updating database without any special tool.
- MongoDB like queries for GET collection.
CLI
Install and start server in current folder
$ npx easy-db-server
Help and configurations
Usage: easy-db-server --port <port> -html ./index.html
Options:
--help Show help [boolean]
--version Show version number [boolean]
-p, --port PORT [number]
-h, --html Index HTML file [string]
-t, --easy-db-token Security token [string]
-v, --verbose 0 - no, 1 - yes [number] [default: 1]
-c, --cors Use CORS [boolean] [default: true]
-s, --size Request size limit [string] [default: "15MB"]
Code
Usage with easy-db-node
.
import { express, useEasyDB } from "easy-db-server";
// or
const { express, useEasyDB } = require("easy-db-server");
const PORT = 80;
const app = express();
useEasyDB(app, {
verbose: 1,
requestSizeLimit: "15MB",
cors: true,
token: "tokenHash",
});
app.listen(PORT, () =>
console.log(`Easy DB server is running at http://localhost:${PORT}.`)
);
Usage with different easy-db service
import { express, useEasyDB } from "easy-db-server";
import easyDBGoogleCloud from "easy-db-google-cloud";
const easyDB = easyDBGoogleCloud({ ... });
const app = express();
useEasyDB(app, {}, easyDB);
app.listen(80);
REST API
GET /api/:collection
: return whole collection optionally withquery
,projection
,sort
,skip
andlimit
GET /api/:collection/:id
: return one row from collection by idPOST /api/:collection
: create row with random idstring
and return idPUT /api/:collection/:id
: replace row from collection by idPATCH /api/:collection/:id
: update row (shallow merge) from collection by idDELETE /api/:collection/:id
: remove whole row from collection by id
Easy-db API
GET /api/easy-db-collections
: return names of collections
Token
Use header Easy-DB-Token
for your token.
Upload files by REST API
Just sent to POST or PUT anywhere in the body { "type": "EASY_DB_FILE", "url": "data:image/png;base64,iVB...YI=" }
.
With GET you will receive { "type": "EASY_DB_FILE", "url": "/easy-db-files/j9pSCplbMx7U.png" }
Query, projection, sort, skip and limit
Easy-db-server use mingo library that allow you to use MongoDB like query, projection, sort, skip and limit. For documentation on using query and projection operators see MongoDB.
GET http://localhost:80/api/user?query={"age":{"$gt":18}}&projection={"name":1,"age":1}&sort={"name":1,"age":-1}&skip=20&limit=10
Files
- easy-db/
- collection1.json
- collection1-wrong-20180912.json
- easy-db-files/
- j9pSCplbMx7U.png
Update DB without code
Only open file and edit them.
collection1.json
{
"LnldbDWRXe8r": { "myRow": 1, "update": 1 },
"UXnuhpl5RvVp": { "myRow": 2, "update": 36 }
}