npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

object_mysql

v3.0.3

Published

Recuperar bases de datos en formato objecto de Javascript

Downloads

19

Readme

🚀 Installation

npm i object_mysql

Usage

Initial setup

The way to use this module is by declaring the following attributes in the environment variables. | Variable | Definition | |--- |--- | | DB_HOST | IPv4 addresses and host names (default:'localhost') | | DB_USER | User name (default:'root') | | DB_PASS | Database password (default:'')| | DB_TABLE | Schema name | | DB_PORT| Port connection | Port connection (default:3306)| | DB_MULTIPLE_STATEMENT| Multiple statement (default:true) | | DB_CONNECTION_LIMIT| Connection limit (default:5000) | | DB_CONNECTION_TIMEOUT| Connection timeout (default:30000) | | DB_CHARSET| Charset (default:'utf8mb4') |

Module Additions Method

|Name | Method | Definition | Return data | |--- |--- |--- |--- | | db | db.query (sql:string,params:object) | Make an inquiry directly | { error, result }|

You can pass parameters to the query so that the data to the query is parsed

Example: direct query

import Dotenv from 'dotenv'
import ObjectDB from 'object_mysql'

Dotenv.config()

const exec = async () => {

    // Retrieve object from database
    const { ...NameToTable, db } = await ObjectDB() 

    // ==========================================
    // "db" is an instance of "new Database()"
    // ==========================================

    // Directly run a query
    const sql = 'SELECT * FROM nametotable WHERE id = :attribute_name'
    const { error, result } = await db.query(sql, {attribute_name:1})
}

exec()

📚 Method of using the objects

|Method | Parameters | Definition | Return data | |--- |--- |--- |--- | | add | params:object | Add data to the table | { error, result }| | get | params:object | Recover data |{ error, result }| | update | id:number-string, params:object | Update data |{ error, result }| | remove | id:number-string | Delete data |{ error, result }| | getByPk | id:number-string, pk: any = 'id' | Recover data based on its primary key |{ error, result }| | getByAttr | nameAttr:string, attr: string-number-null, expresion:string ("=") | Retrieve data according to its attributes |{ error, result }| | count | row:string, params:object | Retrieve register total | int | | getTotal | --- | Retrieve register total | int | | isExist | params:object | Check if record exists based on attributes | boolean |

📚 Listening events

Now you can listen to the events that occur in the module |Method | Definition |Return data | |--- |--- |--- | | monitor | Recover insert, update, delete, select processes | object| | error | Recover errors | object |

Example

import Dotenv from 'dotenv'
import ObjectDB from 'object_mysql'

Dotenv.config()

const exec = async () => {

    // Retrieve object from database
    const { ...NameToTable, on } = await ObjectDB() 

    on('monitor', data => {
        console.log(data)
    })

    // Add data to the table
    await NameToTable.add({name:"Testing data"})

    // Recover data
    await NameToTable.get({id})
}

exec()

/*
console.log -> Add data to the table
{
    startTime: 2955.893799999729,
    endTime: 2958.500699999742,
    executionTime:  0.0026069000000134112,
    executionTimeFormat: '0.003s',
    model: 'NameToTable',
    type: 'insert',
    query: 'INSERT INTO `name_to_table` (`name`) VALUES (:name)',
    params: { name: 'Testing data' },
    result:  OkPacket 
    {
        fieldCount: 0,
        affectedRows: 1,
        insertId: 1,
        serverStatus: 2,
        warningCount: 0,
        message: '',
        protocol41: true,
        changedRows: 0
    }
}

console.log -> Recover data
{
    startTime: 2977.9382999995723,
    endTime:  2975.734899999574 ,
    executionTime: 0.001358299999497831,
    executionTimeFormat: '0.001s',
    model: 'NameToTable',
    type: 'insert',
    query: 'SELECT * FROM `name_to_table` WHERE hotel.name = :name',
    params: { name: 'Testing data' },
    result: [
        RowDataPacket {
            id: 1,
            name: 'Testing data',
            created: '2022-10-31 15:42:33',
            updated: '2022-10-31 15:42:33'
        }
    ]
}
*/

Example: directly attack the table object

import Dotenv from 'dotenv'
import ObjectDB from 'object_mysql'

Dotenv.config()

const exec = async () => {

    // Retrieve object from database
    const { ...NameToTable } = await ObjectDB() 

    // Add data to the table
    const { error, result } = await NameToTable.add({name:"Testing data"})

    // Muliple add data to the table
    const { error, result } = await NameToTable.add([{name:"Testing data"},{name:"Other data"},{name:"more data"}])

    if(error) return false 

    //Unique identifier of the inserted data
    const { insertId:id } = result

    // Update data
    const { error, result } = await NameToTable.update(id,{name:"Testing data 2"})

    if(error) return false

    // Recover data
    const { error, result } = await NameToTable.get({id})

    if(error) return false

    // Delete data
    const { error, result } = await NameToTable.remove(id)
}

exec()

String Function

|check|Method | Description | |--- |--- |--- | |✅| ascii | function returns the ASCII value for the specific character | |✅| char_length | function return the length of a string (in characters)| |✅| length | function returns the length of a string (in bytes)| |✅| lower | function converts a string to lower-case| |✅| trim | function removes leading and trailing spaces from a string| |✅| ltrim | function removes leading spaces from a string | |✅| rtrim | function removes trailing spaces from a string| |✅| reverse | function reverses a string and returns the result| |✅| upper | function converts a string to upper-case|

Numeric Function

|check|Method | Description | |--- |--- |--- | |✅| count | function returns the number of records returned by a select query| |✅| sum | function calculates the sum of a set of values| |✅| avg | function returns the average value of an expression| |✅| max | function returns the maximum value in a set of values| |✅| min | function returns the minimum value in a set of values|

🗒️ Roadmap

  • String Functions
  • Numeric Functions
  • Date Functions
  • Join tables

Last test

Tests have been carried out to check the operation of the connections, create, read, update, remote and also additional functions

alt text