0.0.31 • Published 3 years ago

redbean-sql v0.0.31

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

RedBeanNode

(Early Development)

RedBeanNode is an easy to use ORM tool for Node.js, strongly inspired by RedBeanPHP.

!!!WARNING!!! redbean-sql is last (0.0.20) version of redbean-node with bug fixes

Original: https://www.npmjs.com/package/redbean-node

  • Automatically creates tables and columns as you go
  • No configuration, just fire and forget
  • Ported RedBeanPHP's main features and api design
  • Build on top of knex.js
  • Supports JavaScript & TypeScript
  • async/await or promise friendly

Supported Databases

  • MySQL / MariaDB
  • SQLite

Installation

npm install redbean-sql

Code Example

This is how you do CRUD in RedBeanNode:

const { R } = require("redbean-sql");

// Setup connection
R.setup();

(async () => {
  let post = R.dispense("post");
  post.text = "Hello World";

  // create or update
  let id = await R.store(post);

  // retrieve
  post = await R.load("post", id);

  console.log(post);

  // delete
  await R.trash(post);

  // close connection
  await R.close();
})();

This automatically generates the tables and columns... on-the-fly. It infers relations based on naming conventions.

New

Added getSlots(array)

/**
* @param {Array} array
*/
genSlots(array = []) {
    if (!Array.isArray(array)) return undefined
    var str = array.slice();
    return str.length ? str.fill("?").join() : ''
}

Fixed

Fixed relations

let car = db.R.dispense('car');
    car.brand = 'Brand';
    car.model = 'Model';
    car.year = 'Model';
    car.chat_keyword= 'KWD';
    try {await db.R.store(car);}catch (e) {console.log(e);}

    console.log("Creating usercar model");
    let usercar = db.R.dispense('usercar');
    usercar.added_date = db.R.isoDate();
    usercar.car = car; // Now this store correctly without any errors
    try {await db.R.store(usercar);}catch (e) {console.log(e);}