Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

megadb

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

megadb

base de datos usando JSON

  • 1.9.0
  • npm
  • Socket score

Version published
Weekly downloads
151
decreased by-31.98%
Maintainers
1
Weekly downloads
 
Created
Source
megadb es una actualizacion de mi antiguo package llamado mega-dtbs (https://www.npmjs.com/package/mega-dtbs)

Mejoras

- Se agrego nuevos metodos y parametros especiales.
- Se actualizo absolutamente todo el codigo para una mejor legibilidad y funcionamiento.
- La base de datos ahora es mas persistente.
- Ahora podras tener tus base de datos por separado.
- Errores descriptivos.
- Se arreglo un problema interno.

Importante

- Se creara una carpeta llamada mega_databases en la carpeta principal de tu proyecto, no borres esta carpeta a menos que quieras borrar absolutamente todas tus base de datos.

Changelog

V1.9.0

  • Se agrego 3 nuevos metodos (size, keys, values)

V1.7.0

  • Se agregó el metodo purgeall.

V1.5.0

  • Se arregló el readme.

V1.4.0

  • Se arregló un bug en la funcion obtener.

Constructor:

  • crearDB

Metodos:

Instalacion:

npm install megadb --save

Ejemplo del requerimiento del package:

const db = require('megadb');
### crearDB
crearDB(nombre_db, sub_directorio)

El constructor crearDB creará automáticamente una carpeta llamada mega_databases en tu proyecto, dentro de esta carpeta se almacenaran tus base de datos.

Argumentos

  1. nombre_db: Nombre del archivo con el que se creara la base de datos, si el nombre de la base de datos que pusiste ya existia, lo que hara es devolver los datos existentes de esa db.
  2. sub_directorio (opcional): Este argumento es opcional, es para especificar si quieres que la base de datos se guarde en un sub diréctorio dentro de la carpeta mega_databases.

Ejemplos


//Ejemplo 1
const db = require('megadb');
let niveles = new db.crearDB('niveles');
/*
Esto hará que se cree la base de datos niveles.json dentro de la carpeta mega_databases

Estructura:

[–] node_modules
[+] mega_databases
    - niveles.json

*/


//Ejemplo 2
const db = require('megadb');
let economia = new db.crearDB('guild_1', 'economia_db');
/*
Esto hará que se cree un sub directorio llamado "economia_db" dentro de la carpeta mega_databases, y dentro de este sub directorio se creará la base de datos guild_1.json

Estructura:

[–] node_modules
[+] mega_databases
    [+] economia_db
        - guild_1.json
    - niveles.json
*/
### establecer
establecer(clave, valor, clave_split)

Este metodo te permite crear propiedades mediante una clave, tambien te permite actualizar datos existentes por nuevos.

Argumentos

  1. clave: Aqui deberas de poner el nombre de la propiedad que quieres crear, puedes usar el . seguido de otro nombre para crear o para acceder a propiedades anidadas (el . es un signo por default, puedes cambiarlo en clave_split)
  2. valor: Aqui deberas de poner el valor que recibira la propiedad que especificaste en el argumento clave.
  3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para crear o para acceder a propiedades anidadas en el argumento clave (por default es el .)

Retorna

Promesa con los datos actualizados

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.establecer('MegaStar', {xp: 0, nivel: 10}) // retorna una promesa: {MegaStar: {xp: 0, nivel: 10}}
niveles.establecer('MegaStar.xp', 100) // retorna una promesa: {MegaStar: {xp: 100, nivel: 10}}
niveles.establecer('MoDeR', 100) // retorna una promesa: {MegaStar: {xp: 100, nivel: 10}, MoDeR: 100}
niveles.establecer('MoDeR-datos-monedas', 200, "-") // retorna una promesa: {MegaStar: {xp: 100, nivel: 10}, MoDeR: {datos: {monedas: 200}}}
niveles.establecer('MoDeR.datos.banco', 1000) // retorna una promesa:{MegaStar: {xp: 100, nivel: 10}, MoDeR: {datos: {monedas: 200, banco: 1000}}}
niveles.establecer('RatSageM', []) // retorna una promesa: {MegaStar: {xp: 100, nivel: 10}, MoDeR: {datos: {monedas: 200, banco: 1000}}, RatSageM: []}

//Estructura de la base de datos niveles.json:
{
  "MegaStar": {
    "xp": 100,
    "nivel": 10
  },
  "MoDeR": {
    "datos": {
      "monedas": 200,
      "banco": 1000
    }
  },
  "RatSageM": []
}

### size
size()

Este metodo te permite obtener el numero de valores(claves/keys) de una base de datos.

Argumentos

Ninguno

Retorna

Retorna el numero de valores de la base de datos(claves/keys).

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

let length = niveles.size()
console.log(length) //Esto retorna 3 ya que solo hemos agregado 3 valores(claves): MegaStar, MoDeR y RatSageM
### obtener
obtener(clave, clave_split)

Este metodo te permite obtener los datos(valores) de una propiedad especifica.

Argumentos

  1. clave: Aqui deberas de poner el nombre de la propiedad que quieres obtener, puedes usar el . seguido de otro nombre para acceder a propiedades anidadas (el . es un signo por default, puedes cambiarlo en clave_split)
  2. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidada en el argumento clave (por default es el .)

Retorna

Promesa con los datos que se obtuvo.

Error

En caso de que ocurra un error, esto regresara un objeto con el error descriptivo (puedes obtenerlo con un .catch(error => )) Click aqui para ver los tipos de errores

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.obtener('MegaStar') // retorna promesa: {xp: 100, nivel: 10}
niveles.obtener('MegaStar.nivel') // retorna promesa: 10
niveles.obtener('MoDeR-datos-banco', "-") // retorna promesa: 1000
### tiene
tiene(clave, clave_split)

Este metodo te permite verificar si existe una propiedad especifica.

Argumentos

  1. clave: Aqui deberas de poner el nombre de la propiedad que quieres verificar, puedes usar el . seguido de otro nombre para acceder a propiedades anidadas (el . es un signo por default, puedes cambiarlo en clave_split)
  2. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidada en el argumento clave (por default es el .)

Retorna

  1. true si la propiedad existe.
  2. false si la propiedad no existe.

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.tiene('MegaStar') // retorna true
niveles.tiene('Mario') // retorna false
niveles.tiene('MegaStar.monedas') // retorna false
niveles.tiene('MoDeR-datos-monedas', "-") // retorna true
### eliminar
eliminar(clave, clave_split)

Este metodo te permite eliminar una propiedad especifica.

Argumentos

  1. clave: Aqui deberas de poner el nombre de la propiedad que quieres eliminar, puedes usar el . seguido de otro nombre para acceder a propiedades anidadas (el . es un signo por default, puedes cambiarlo en clave_split)
  2. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidada en el argumento clave (por default es el .)

Retorna

  1. true si la propiedad se elimino correctamente.
  2. false si la propiedad no se elimino (no existe).

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.eliminar('MegaStar.xp') //retorna true
niveles.eliminar('MoDeR.datos.banco') //retorna true
niveles.eliminar('Mario') //retorna false


niveles.tiene('MoDeR.datos.banco') // retorna false porque lo eliminamos
niveles.tiene('MegaStar.xp') // retorna false porque lo eliminamos

niveles.obtener('MegaStar') // retorna promesa: {nivel: 10}
niveles.obtener('MoDeR-datos', "-") // retorna promesa: {monedas: 200}


//Estructura actual de la base de datos niveles.json:
{
  "MegaStar": {
    "nivel": 10
  },
  "MoDeR": {
    "datos": {
      "monedas": 200
    }
  },
  "RatSageM": []
}

### datos
datos()

Este metodo regresa todas las propiedades de la base de datos, en otras palabras todos los datos.

Argumentos

Ninguno

Retorna

Promesa con todos los datos.

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.datos().then(n => {
  console.log(n)
})

//console.log(n)
{
  "MegaStar": {
    "nivel": 10
  },
  "MoDeR": {
    "datos": {
      "monedas": 100
    }
  },
  "RatSageM": []
}
### push
push(clave, valor, clave_split)

Este metodo te permite agregar un elemento a un array.

Argumentos

  1. clave: Aqui deberas de poner el nombre de la propiedad a la que quieres agregar el elemento, puedes usar el . seguido de otro nombre para acceder a propiedades anidadas (el . es un signo por default, puedes cambiarlo en clave_split)
  2. valor: Aqui deberas de poner el elemento que se agregara en el array que especificaste en el argumento clave.
  3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave (por default es el .)

Retorna

Promesa con el array actualizado.

Error

En caso de que ocurra un error, esto regresara un objeto con el error descriptivo (puedes obtenerlo con un .catch(error => )) Click aqui para ver los tipos de errores

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.push('RatSageM', 'manzana') // retorna promesa: ["manzana"]
niveles.establecer('MGstar', {items: ["platano"]})
//retorna promesa: {MegaStar: {nivel: 10}, MoDeR: {datos: {monedas: 100}}, RatSageM: ["manzana"], Mgstar: {items: ["platano"]}}

niveles.push('MGstar', 'sandia') // retorna Error: {type: "ARRAY NO EXISTENTE", mensaje: "El valor de la propiedad MGstar no es un array"}
niveles.push('MGstar.items', 'sandia') // retorna promesa: ["platano", "sandia"]


//Estructura actual de la base de datos niveles.json:
{
  "MegaStar": {
    "nivel": 10
  },
  "MoDeR": {
    "datos": {
      "monedas": 200
    }
  },
  "RatSageM": ["manzana"],
  "MGstar": {
    "items": ["platano", "sandia"]
  }
}
### extract
extract(clave, valor, clave_split)

Este metodo te permite remover un elemento especifico de un array.

Argumentos

  1. clave: Aqui deberas de poner el nombre de la propiedad a la que quieres remover el elemento, puedes usar el . seguido de otro nombre para acceder a propiedades anidadas (el . es un signo por default, puedes cambiarlo en clave_split)
  2. valor: Aqui deberas de poner el elemento que se removera del array que especificaste en el argumento clave.
  3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave (por default es el .)

Retorna

Promesa con el array actualizado.

Error

En caso de que ocurra un error, esto regresara un objeto con el error descriptivo (puedes obtenerlo con un .catch(error => )) Click aqui para ver los tipos de errores

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.extract('MGstar', 'platano') // retorna Error: {type: "ARRAY NO EXISTENTE", mensaje: "El valor de la propiedad MGstar no es un array"}
niveles.extract('RatSageM', 'manzana') // retorna promesa: []
niveles.extract('MGstar.items', 'platano') // retorna promesa: ["sandia"]
niveles.extract('MGstar.items', 'durazno') // retorna Error: {type: "ITEM NO EXISTENTE", mensaje: "El item durazno no existe en el array items"}


//Estructura actual de la base de datos niveles.json:
{
  "MegaStar": {
    "nivel": 10
  },
  "MoDeR": {
    "datos": {
      "monedas": 200
    }
  },
  "RatSageM": [],
  "MGstar": {
    "items": ["sandia"]
  }
}
### sumar
sumar(clave, valor, clave_split)

Este metodo te permite sumar una cantidad especifica a una propiedad, el valor propiedad debe ser un numero.

Argumentos

  1. clave: Aqui deberas de poner el nombre de la propiedad a la que quieres sumarle una cantidad especifica, puedes usar el . seguido de otro nombre para acceder a propiedades anidadas (el . es un signo por default, puedes cambiarlo en clave_split)
  2. valor: Aqui deberas de poner la cantidad que se le sumara a la propiedad que especificaste en el argumento clave, esto debe ser un numero.
  3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave (por default es el .)

Retorna

Promesa con el valor actualizado.

Error

En caso de que ocurra un error, esto regresara un objeto con el error descriptivo (puedes obtenerlo con un .catch(error => )) Click aqui para ver los tipos de errores

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.establecer('Nelson', 20)
//retorna promesa: {MegaStar: {nivel: 10}, MoDeR: {datos: {monedas: 200}}, RatSageM: [], MGstar: {items: ["sandia"]}, Nelson: 20}

niveles.sumar('Nelson', 25) //retorna promesa: 45
niveles.establecer('Sun.datos.monedas', 10)
//retorna promesa: {MegaStar: {nivel: 10}, MoDeR: {datos: {monedas: 200}}, RatSageM: [], MGstar: {items: ["sandia"]}, Nelson: 20, Sun: {datos: {monedas: 10}}}

niveles.sumar('Sun.datos', 90) //retorna Error: {type: "NUMERO NO EXISTENTE", mensaje: "El valor de la propiedad datos no es un numero"}
niveles.sumar('Sun-datos-monedas', 90, "-") // retorna promesa: 100

console.log(niveles.size()) //Esto imprime 6 ya que hemos agregado 6 valores(claves): MegaStar, MoDeR, RatSageM, MGstar, Nelson y Sun

//Estructura actual de la base de datos niveles.json:
{
  "MegaStar": {
    "nivel": 10
  },
  "MoDeR": {
    "datos": {
      "monedas": 200
    }
  },
  "RatSageM": [],
  "MGstar": {
    "items": ["sandia"]
  },
  "Nelson": 45,
  "Sun": {
    "datos": {
      "monedas": 100
    }
  }
}
### restar
restar(clave, valor, clave_split)

Este metodo te permite restar una cantidad especifica a una propiedad, el valor propiedad debe ser un numero.

Argumentos

  1. clave: Aqui deberas de poner el nombre de la propiedad a la que quieres restarle una cantidad especifica, puedes usar el . seguido de otro nombre para acceder a propiedades anidadas (el . es un signo por default, puedes cambiarlo en clave_split)
  2. valor: Aqui deberas de poner la cantidad que se le restara a la propiedad que especificaste en el argumento clave, esto debe ser un numero.
  3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave (por default es el .)

Retorna

Promesa con el valor actualizado.

Error

En caso de que ocurra un error, esto regresara un objeto con el error descriptivo (puedes obtenerlo con un .catch(error => )) Click aqui para ver los tipos de errores

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.restar('Nelson', 40) //retorna promesa: 5
niveles.restar('Sun.datos', 100) //retorna Error: {type: "NUMERO NO EXISTENTE", mensaje: "El valor de la propiedad datos no es un numero"}
niveles.restar('Sun-datos-monedas', 100, "-") // retorna promesa: 0


//Estructura actual de la base de datos niveles.json:
{
  "MegaStar": {
    "nivel": 10
  },
  "MoDeR": {
    "datos": {
      "monedas": 200
    }
  },
  "RatSageM": [],
  "MGstar": {
    "items": ["sandia"]
  },
  "Nelson": 5,
  "Sun": {
    "datos": {
      "monedas": 0
    }
  }
}
### keys
keys(clave, clave_split)

Este metodo retorna un array con todos los nombres(keys) de las propiedades del objeto que especificaste.

Argumentos

  1. clave (opcional): La clave es opcional, en el caso de que quieras obtener los nombres(keys) de un objeto especifico, puedes colocar el nombre del objecto. Si quieres obtener los nombres(keys) de un objecto anidado, puedes usar el . seguido del nombre del objeto anidado (el . es un signo por default, puedes cambiarlo en clave_split) En el caso de que directamente quieras obtener los nombres(keys) de una base de datos, no pongas ningun valor.

  2. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave (por default es el .)

Retorna

Promesa con un array que contiene los nombres de las propiedades(keys).

Error

En caso de que ocurra un error, esto regresara un objeto con el error descriptivo (puedes obtenerlo con un .catch(error => )) Click aqui para ver los tipos de errores

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.keys() //retorna promesa: ["MegaStar", "MoDeR", "RatSageM", "MGstar", "Nelson", "Sun"]
niveles.keys('MegaStar.nivel') //retorna Error: {type: "OBJETO NO EXISTENTE", mensaje: "El valor de la propiedad nivel no es un objeto"}
niveles.keys('Sun.datos') ///retorna promesa: ["monedas"]
### values
values(clave, clave_split)

Este metodo retorna un array con todos los valores de las propiedades del objeto que especificaste.

Argumentos

  1. clave (opcional): La clave es opcional, en el caso de que quieras obtener los valores de un objeto especifico, puedes colocar el nombre del objecto. Si quieres obtener los valores de un objecto anidado, puedes usar el . seguido del nombre del objeto anidado (el . es un signo por default, puedes cambiarlo en clave_split) En el caso de que directamente quieras obtener los valores de una base de datos, no pongas ningun valor.

  2. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave (por default es el .)

Retorna

Promesa con un array que contiene los valores de las propiedades.

Error

En caso de que ocurra un error, esto regresara un objeto con el error descriptivo (puedes obtenerlo con un .catch(error => )) Click aqui para ver los tipos de errores

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

niveles.values() //retorna promesa: [{nivel: 10}, {datos: {monedas: 200}}, [], {items: ["sandia"]}, {datos: {monedas:0}}]

niveles.values('MegaStar.nivel') //retorna Error: {type: "OBJETO NO EXISTENTE", mensaje: "El valor de la propiedad nivel no es un objeto"}
niveles.values('Sun.datos') ///retorna promesa: [{monedas: 0}]
### purgeall
purgeall()

Este metodo te permite eliminar todos los datos de una base de datos especifica.

Argumentos

Ninguno

Retorna

  1. true si se elimino todo correctamente.
  2. false si no se elimino correctamente.

Ejemplos

const db = require('megadb');
let niveles = new db.crearDB('niveles');

//Estructura actual de la base de datos niveles.json:
{
  "MegaStar": {
    "nivel": 10
  },
  "MoDeR": {
    "datos": {
      "monedas": 200
    }
  },
  "RatSageM": [],
  "MGstar": {
    "items": ["sandia"]
  },
  "Nelson": 5,
  "Sun": {
    "datos": {
      "monedas": 0
    }
  }
}


let status = niveles.purgeall()
console.log(status) //Esto retorna true

//Estructura actual de la base de datos niveles.json:
{} //No contiene nada ya que se elimino todo
### ordenar
ordenar(clave, valor, clave_split)

Este metodo te permite ordenar las propiedad de un objeto de forma descendente, ten en cuenta que el valor de las propiedades que quieras ordenar debe ser un numero.

Argumentos

  1. clave: La clave puede recibir dos tipos de valores, en el caso de que quieras ordenar las propiedades de un objeto especifico, puedes colocar el nombre del objecto. Si quieres ordenar las propiedades de un objecto anidado, puedes usar el . seguido del nombre del objeto anidado (el . es un signo por default, puedes cambiarlo en clave_split) Puedes usar false en caso de que directamente quieras ordenar las propiedades de una base de datos.

  2. valor: El valor tambien puede recibir dos tipos de valores, en el caso de que las propiedades del objeto que quieres ordenar tambien sean objetos y mantengan propiedades, puedes colocar el nombre de la propiedad que se usara como referencia para ordenarlos de forma descendente, en el caso de que estas propiedades tambien sean objetos, puedes usar el . seguido del nombre del objeto y la propiedad que quieres ordenar (el . es un signo por default, puedes cambiarlo en clave_split) Puedes usar false en caso de que el valor de la propiedad con la cual lo vas a ordenar no sea un objeto.

  3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave y el argumento valor (por default es el .)

Retorna

Promesa con un array, este array contiene las propiedades ordenadas de forma descendente.

Error

En caso de que ocurra un error, esto regresara un objeto con el error descriptivo (puedes obtenerlo con un .catch(error => )) Click aqui para ver los tipos de errores

Ejemplos

//ejemplo_1

const db = require('megadb');
let economia = new db.crearDB('guild_1', 'economia_db');

economia.establecer('MegaStar', 100)
economia.establecer('MoDeR', 40)
economia.establecer('ratsagem', 320)

/*
Estructura actual de la base de datos guild_1.json:

{
  "MegaStar": 100,
  "MoDeR": 40,
  "ratsagem": 320
}

*/

economia.ordenar(false, false)
//retorna promesa: [{clave: 'ratsagem', valor: 320}, {clave: 'MegaStar', valor: 100}, {clave: 'MoDeR', valor: 40}]


/////////////////////////////////////////////////////


//ejemplo_2
const db = require('megadb');
let economia = new db.crearDB('guild_1', 'economia_db');
economia.establecer('MegaStar', {monedas: 100})
economia.establecer('MoDeR', {monedas: 40})
economia.establecer('ratsagem', {monedas: 320})

/*
Estructura actual de la base de datos guild_1.json:

{
  "MegaStar": {
    "monedas": 100
  },
  "MoDeR": {
    "monedas": 40
  },
  "ratsagem": {
    "monedas": 320
  }
}

*/

economia.ordenar(false, "monedas")
//retorna promesa: [{clave: 'ratsagem', valor: {monedas: 320)}, {clave: 'MegaStar', valor: {monedas: 100}}, {clave: 'MoDeR', valor: {monedas: 40)}]


/////////////////////////////////////////////////////


//ejemplo_3
const db = require('megadb');
let economia = new db.crearDB('guild_2', 'economia_db');
let usuarios_data = {
  'MegaStar': 100,
  'MoDeR': 40,
  'ratsagem': 320
}
economia.establecer('usuarios', usuarios_data)

/*
Estructura actual de la base de datos guild_2.json:

{
  "usuarios": {
    "MegaStar": 100
    "MoDeR": 40
    "ratsagem": 320
  }
}

*/

economia.ordenar("usuarios", false)
//retorna promesa: [{clave: 'ratsagem', valor: 320}, {clave: 'MegaStar', valor: 100}, {clave: 'MoDeR', valor: 40}]


/////////////////////////////////////////////////////


//ejemplo_4
const db = require('megadb');
let economia = new db.crearDB('guild_3', 'economia_db');
let usuarios_data = {
  "MegaStar": {monedas: 50},
  "MoDeR": {monedas: 67},
  "ratsagem": {monedas: 4}
}
economia.establecer('usuarios', usuarios_data)


/*
Estructura actual de la base de datos guild_3.json:

{
  "usuarios": {
    "MegaStar": {
      "monedas": 50
    },
    "MoDeR": {
      "monedas": 67
    },
    "ratsagem": {
      "monedas": 4
    }
  }
}

*/

economia.ordenar("usuarios", "monedas")
//retorna promesa: [{clave: 'MoDeR', valor: {monedas: 67)}, {clave: 'MegaStar', valor: {monedas: 50}}, {clave: 'ratsagem', valor: {monedas: 4)}]


/////////////////////////////////////////////////////


//ejemplo_5
const db = require('megadb');
let economia = new db.crearDB('guild_4', 'economia_db');

let usuarios = {
  "megastar": {monedas: 10, medallas: 15},
  "moder": {monedas: 50, medallas: 20},
  "ratsagem": {monedas: 25, medallas: 5}
}
economia.establecer('servidores.datos', usuarios)

/*
Estructura actual de la base de datos guild_4.json:

{
 'servidores': {
    'datos': {
      'megastar': {
        'monedas': 10,
        'medallas': 15
      },
      'moder': {
        'monedas': 50,
        'medallas': 20
      },
      'ratsagem': {
        'monedas': 25,
        'medallas': 5
      }
    }
  }
}

*/

economia.ordenar('servidores.datos', "medallas")

/*
retorna promesa:

[
  {clave: 'moder', valor: {monedas: 50, medallas: 20}},
  {clave: 'MegaStar', valor: {monedas: 10, medallas: 15}},
  {clave: 'ratsagem', valor: {monedas: 25, medallas: 5}}
]

*/



/////////////////////////////////////////////////////


//ejemplo_6
const db = require('megadb');
let economia = new db.crearDB('guild_5', 'economia_db');

let usuarios = {
  "megastar": {stats: {monedas: 10}},
  "moder": {stats: {monedas: 50}},
  "ratsagem": {stats: {monedas: 25}}
}
economia.establecer('servidores.datos', usuarios)

/*
Estructura actual de la base de datos guild_5.json:

{
 'servidores': {
    'datos': {
      'megastar': {
        'stats': {
          'monedas': 10
        }
      },
      'moder': {
        'stats': {
          'monedas': 50
        }
      },
      'ratsagem': {
        'stats': {
          'monedas': 25
        }
      }
    }
  }
}

*/

economia.ordenar('servidores-datos', "stats-monedas", "-") //Estoy usando el - como separador en lugar del .

/*
retorna promesa:

[
  {clave: 'moder', valor: {stats: {monedas: 50}}},
  {clave: 'ratsagem', valor: {stats: {monedas: 25}}},
  {clave: 'megastar', valor: {stats: {monedas: 10}}}
]

*/
### random
random(clave, cantidad, clave_split)

Este metodo te permite obtener una cantidad especifica de propiedades aleatoriamente (random), nunca se repetiran.

Argumentos

  1. clave: La clave puede recibir dos tipos de valores, en el caso de que quieras obtener aleatoriamente una cantidad especifica de propiedades de un objeto, puedes colocar el nombre del objecto. Si quieres obtener aleatoriamente una cantidad especifica de propiedades de un objecto anidado, puedes usar el . seguido del nombre del objeto anidado (el . es un signo por default, puedes cambiarlo en clave_split) Puedes usar false en caso de que tengas propiedades que no sean objetos anidados.

  2. cantidad: Aqui deberas de poner la cantidad(un numero) de propiedades random que se obtendra del objeto que especificaste en el argumento clave.

  3. clave_split (opcional): Este argumento es opcional, aqui puedes especificar el signo que se usara para acceder a propiedades anidadas en el argumento clave (por default es el .)

Retorna

Promesa con un array, este array contiene las propiedades que fueron seleccionadas aleatoriamente.

Error

En caso de que ocurra un error, esto regresara un objeto con el error descriptivo (puedes obtenerlo con un .catch(error => )) Click aqui para ver los tipos de errores

Ejemplos

//ejemplo_1
const db = require('megadb');
let giveaway = new db.crearDB('giveaway');

giveaway.establecer('MegaStar', {ganadas: 0})
giveaway.establecer('MoDeR', {ganadas: 0})
giveaway.establecer('ratsagem', {ganadas: 0})
giveaway.establecer('Sun', {ganadas: 0})
giveaway.establecer('MGstar', {ganadas: 0})
giveaway.establecer('ruru', {ganadas: 0})

//Estructura actual de la base de datos giveaway.json:
{
  "MegaStar": {
    "ganadas": 0
  },
  "MoDeR": {
    "ganadas": 0
  },
  "ratsagem": {
    "ganadas": 0
  },
  "pedro": {
    "ganadas": 0
  },
  "MGstar": {
    "ganadas": 0
  },
  "ruru":  {
    "ganadas": 0
  }
}

giveaway.random(false, 4)
//retorna una promesa (las propiedades son aleatorias, esto es solo un ejemplo):
/*

[
  {clave: MegaStar, valor: {ganadas: 0}},
  {clave: ruru, valor: {ganadas: 0}},
  {clave: pedro, valor: {ganadas: 0}},
  {clave: MoDeR, valor: {ganadas: 0}}
]

*/


/////////////////////////////////////////////////////


//ejemplo_2
const db = require('megadb');
let giveaway = new db.crearDB('giveaway1');
let usuarios = {
  "12132131231242343": {ganadas: 0},
  "12132454545454543": {ganadas: 2},
  "13243242342342343": {ganadas: 1},
  "12138786867868683": {ganadas: 6},
  "18989896797978973": {ganadas: 0},
  "12121212135345346":  {ganadas: 5}
}
giveaway.establecer('users_ID', usuarios)


//Estructura actual de la base de datos giveaway1.json:
{
  "users_ID": {
    "12132131231242343": {
      "ganadas": 0
    },
    "12132454545454543": {
      "ganadas": 2
    },
    "13243242342342343": {
      "ganadas": 1
    },
    "12138786867868683": {
      "ganadas": 6
    },
    "18989896797978973": {
      "ganadas": 0
    },
    "12121212135345346":  {
      "ganadas": 5
    }
  }
}

giveaway.random("users_ID", 3)
//retorna una promesa (las propiedades son aleatorias, esto es solo un ejemplo):
/*

[
  {clave: 13243242342342343, valor: {ganadas: 1}},
  {clave: 12138786867868683, valor: {ganadas: 6}},
  {clave: 12121212135345346, valor: {ganadas: 5}}
]

*/
### existeDB
existeDB(nombre_db)

Este metodo te permite verificar si existe una especifica base de datos en la carpeta mega_databases o en sub directorio.

Argumentos

  1. nombre_db: Aqui debe de ir el nombre de la base de datos que quires verificar si existe, si usaste la opcion del sub directorio en el constructor crearDB, esto automaticamente buscara en el sub directorio, de lo contrario se buscara en la carpeta mega_databases si no usaste esta opcion.

Retorna

  1. true si la base de datos existe.
  2. false si la base de datos no existe.

Ejemplos

/*
Nuestra estructura de dbs deberia ser esta:

[–] node_modules
[+] mega_databases
    [+] economia_db
        - guild_1.json
        - guild_2.json
        - guild_3.json
        - guild_4.json
        - guild_5.json
    - niveles.json
    - giveaway.json
    - giveaway1.json
*/

//ejemplo_1 usare un sub directorio
const db = require("megadb");
let economia = new db.crearDB("guild_1", "economia_db") //Estoy obteniendo el archivo guild_1.json que esta dentro del sub directorio "economia_db"
console.log(economia.existeDB("guild_2")) //retorna true
console.log(economia.existeDB("guild_5")) //retorna true
console.log(economia.existeDB("guild_8")) //retorna false
console.log(economia.existeDB("niveles")) //retorna false


//ejemplo_2 sin usar sub directorio
const db = require("megadb");
let niveles = new db.crearDB("niveles") //Estoy obteniendo el archivo niveles.json que esta dentro de la carpeta mega_databases
console.log(niveles.existeDB("giveaway")) //retorna true
console.log(niveles.existeDB("giveaway1")) //retorna true
console.log(niveles.existeDB("guild_8")) //retorna false
console.log(niveles.existeDB("mydb")) //retorna false
### convert_megadtbs
convert_megadtbs()

Este metodo es especial, usalo solo cuando quieras adaptar tu base de datos del npm mega-dtbs al megadb. Para adaptar tu base de datos del mega-dtbs a megadb, debes de poner el nombre "mega_db" en el constructor crearDB. Asegurate de que el archivo mega_db.json se encuentre dentro de la carpeta mega_databases.

Argumentos

Ninguno.

Retorna

Nada.

Demostracion

https://youtu.be/rouyoy0SJN0

Ejemplos

const db = require("megadb");
let megadb = new db.crearDB("mega_db")
megadb.convert_megadtbs()
## Errores

Existen 6 tipos de errores que te pueden salir en el .catch, esto retorna un objeto que contiene 2 propiedades:

  1. type: Aqui se muestra el tipo de error.
  2. mensaje: Aqui se muestra el error descriptivo.

Tipos de errores:

1: {type: "DATABASE NO EXISTENTE", mensaje: "La base de datos {nombre_database} no existe: {ruta_directorio}"}
2: {type: "PROPIEDAD NO EXISTENTE",mensaje: "No se encontro la propiedad {nombre_propiedad}"}
3: {type: "NUMERO NO EXISTENTE",mensaje: "El valor de la propiedad {nombre_propiedad} no es un numero"}
4: {type: "ARRAY NO EXISTENTE",mensaje: "El valor de la propiedad {nombre_propiedad} no es un array"}
5: {type: "ITEM NO EXISTENTE",mensaje: "El item {elemento} no existe en el array {nombre_array}"}
6: {type: "OBJETO NO EXISTENTE", mensaje: "El valor de la propiedad {nombre_propiedad} no es un objeto"}

Ejemplos

const db = require("megadb");
let paises = new db.crearDB("paises")
paises.establecer("norte", ["argentina", "brasil", "colombia"]) //retorna promesa: {norte: ["argentina", "brasil", "colombia"]}

paises.extract("norte", "bolivia").then(nuevos => {
  console.log(nuevos)
}).catch(error => {
  console.log(`error: ${error.type} , mensaje: ${error.mensaje}`)
})

//Esto retorna en el .catch => "error: ITEM NO EXISTENTE , mensaje: El item bolivia no existe en el array norte"

Ejemplo usando algunas funciones:

const db = require('megadb');
let estadisticas = new db.crearDB('niveles');

let randomXP = Math.floor(Math.random() * 60) + 1;

if(!estadisticas.tiene('MegaStar')) {
  estadisticas.establecer('MegaStar', {xp: 0, nivel: 1});
}

estadisticas.obtener('MegaStar').then(datos => {
  if((randomXP + datos.xp) >= 50) {
    estadisticas.establecer('MegaStar', {xp: 0, nivel: datos.nivel + 1}).then(nuevos => {
      let nuevo_nivel = nuevos['MegaStar'].nivel
      console.log(`MegaStar subio al nivel ${nuevo_nivel}!`)
    }).catch(err => console.log(err))
  }
  else{
    estadisticas.sumar('MegaStar.xp', randomXP)
  }
}).catch(err => console.log(err))


/////////////////////////////////////////////////////


const db = require('megadb');
let escuela = new db.crearDB('alumnos');

escuela.establecer('MegaStar', {edad: 20, profesion: ['programador']});
escuela.establecer('MoDeR', {edad: 18, profesion: ['programador']});
escuela.establecer('RatSageM', {edad: 25, profesion: ['maestro']});


escuela.datos().then(alumnos => {
  for(var alumno in alumnos) {
    if(alumnos[alumno].profesion.includes('programador')) {
      escuela.push(`${alumno}.profesion`, 'javascript');
      continue;
    }
    escuela.eliminar(`${alumno}`)
  }
})


//resultado final:
{
  "MegaStar": {
    "edad": 20,
    "profesion": ["programador", "javascript"]
  },
  "MoDeR": {
    "edad": 18,
    "profesion": ["programador", "javascript"]
  }
}

/////////////////////////////////////////////////////

const db = require('megadb');
let mercado_db = new db.crearDB('mercado');

let nombres = ['manzana', 'melocoton', 'sandia', 'lechuga']

mercado_db.establecer('frutas', nombres); //esto retorna {frutas: ['manzana', 'melocoton', 'sandia', 'lechuga']}

mercado_db.obtener('frutas').then(f => {
  for(var x = 0; x < f.length; x++) {
    if(f[x] == 'lechuga') {
      mercado_db.extract('lechuga').then(nuevas_frutas => {
        //esto retorna ['manzana', 'melocoton', 'sandia']
        console.log(`La ${f[x]} no es una fruta, acabo de removerlo.`)      
      }).catch(error => {
        console.log(`Ocurrio un error: ${error.type}, mensaje: ${error.mensaje}`)
      })
      break;
    }
  }
}).catch(error => {
  console.log(error)
})



//resultado final:
{
  "frutas": ["manzana", "melocoton", "sandia"]
}

/////////////////////////////////////////////////////


const db = require('megadb');
let economia_db = new db.crearDB('economia')

let usuarios = {
  megastar: {monedas: 10, medallas: 15},
  moder: {monedas: 50, medallas: 20},
  ratsagem: {monedas: 25, medallas: 5}
}

economia_db.establecer('servidor.datos', usuarios)

economia_db.ordenar('servidor.datos', "monedas").then(nuevos => {
  let ranking = []
  for(var x = 0; x < nuevos.length; x++) {
    ranking.push(`rank #${parseInt(x+1)} | usuario: ${nuevos[x].clave} | monedas: ${nuevos[x].valor.monedas} | medallas: ${nuevos[x].valor.medallas}\n`)
  }
})


/*
resultado:

rank #1 | usuario: moder | monedas: 50 | medallas: 20
rank #2 | usuario: ratsagem | monedas: 25 | medallas: 5
rank #3 | usuario: megastar | monedas: 10 | medallas: 20

*/


/////////////////////////////////////////////////////


const db = require('megadb');
let login_db = new db.crearDB('login')

let registered_users = {
  "Mario": "password1",
  "MegaStar": "password2",
  "MoDeR": "password3",
  "RatSageM": "password4"
}


login_db.establecer('usuarios', registered_users)

/*
Estructura actual de la base de datos login.json:

{
  "usuarios": {
    "Mario": "password1",
    "MegaStar": "password2",
    "MoDeR": "password3",
    "RatSageM": "password4"
  }
}

*/

login_db.keys('usuarios').then(users => {
  console.log(`Nombres de los usuarios registrados: ${users.join(", ")}`)
})

//resultado: "Nombres de los usuarios registrados: Mario, MegaStar, MoDeR, RatSageM"

Keywords

FAQs

Package last updated on 19 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc