Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
megadb es una actualizacion de mi antiguo package llamado mega-dtbs (https://www.npmjs.com/package/mega-dtbs)
- 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 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.
npm install megadb --save
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
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
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": []
}
### obtener
obtener(clave, clave_split)
Este metodo te permite obtener los datos(valores) de una propiedad especifica.
Argumentos
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
Retorna
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
Retorna
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
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
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
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
//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
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
}
}
}
### ordenar
ordenar(clave, valor, clave_split)
Este metodo te permite ordenar los valores de una propiedad de forma descendente, ten en cuenta que el valor de la propiedad que quieras ordenar debe ser un numero.
Argumentos
clave: La clave puede recibir dos tipos de valores, en el caso de que quieras ordenar las propiedades 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 tengas propiedades que no sean objetos anidados.
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 los valores de las propiedades no sean objetos anidados.
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', monedas: 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('servidor.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('servidor.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('servidor.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('servidor-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
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.
cantidad: Aqui deberas de poner la cantidad(un numero) de propiedades random que se obtendra del objeto que especificaste en el argumento clave.
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');
let usuarios = {
"MegaStar": {ganadas: 0},
"MoDeR": {ganadas: 0},
"ratsagem": {ganadas: 0},
"Sun": {ganadas: 0},
"MGstar": {ganadas: 0},
"ruru": {ganadas: 0}
}
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)
//retonra 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)
//retonra 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
Retorna
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
Ejemplos
const db = require("megadb");
let megadb = new db.crearDB("mega_db")
megadb.convert_megadtbs()
## Errores
Existen 5 tipos de errores que te pueden salir en el .catch, esto retorna un objeto que contiene 2 propiedades:
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}"}
Ejemplo:
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"
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_datos => {
console.log(`MegaStar subio al nivel ${nuevos_datos.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 ['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.establecer('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
*/
FAQs
base de datos usando JSON
The npm package megadb receives a total of 130 weekly downloads. As such, megadb popularity was classified as not popular.
We found that megadb demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.