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

mysql-query-util

v1.1.1

Published

A mySQL utility function for performing CRUD operations

Downloads

69

Readme

mysql-query-util

Build Status

NPM npm

A simple and light-weight utility module for mysql and nodejs.

This plugin helps construct mysql queries with more relatable syntax just like most non-sql database management systems. It is a NodeJs module available through the npm registry so be sure to download and install NodeJS first.


Installation

npm install --save mysql-query-util

Features

The plugin abstracts most redundant mysql CRUD queries from the developer by providing an easier and more declarative way of constructing queries for:

Configuration and usage

Here is an example of how to use the plugin: Note: You can either pass positional args or an object to the methods.

const mysqlUtil = require("mysql-query-util");

mysqlUtil.setConnection({
    host: process.env.DB_HOST, //database host, eg: localhost
    user: process.env.DB_USER, // database user, eg: root
    password: process.env.DB_PASSWORD, //database password,eg: anything
    database: process.env.DB_NAME // database name, eg: anything,
    connectionLimit: 25 // connection Limit(Integer)
});

const queryResult = await mysqlUtil.select(tableName, fields, params|Optional);
const queryResult = await mysqlUtil.select({tableName:String, fields:[fieds|columns_to_select], params:[[params|optional]]});

eg: const result = await  mysqlUtil.select("users");
eg: const result = await mysqlUtil.select({tableName:'users'});

The above code first initializes a connection before making queries.The initialization happens only once as it creates a connection pool and returns an connection object to be used for subsequent queries.

In the second paragraph, since all the methods return a promise, we await for the promise or use the .then to get the result of the operation.

Selection query

The package exposes a .select method that runs a mysql select query. This method accepts three(3) positional arguments or an object -

// Fetch all record from `users` table
const result = await mysqlUtil.select("users");
// OR
const result = await mysqlUtil.select({ tableName: "users" }).then((res) => {});

// Fetch the name and age from the users table
const result = await mysqlUtil.select("users", ["name", "age"]);
// OR
const result = await mysql.select({
  tableName: "users",
  fields: ["name", "age"],
});

// Fetch all female users whose age is greater that 40
const result = await mysqlUtil.select("users", "*", [
  ["gender", "like", "female"],
  ["AND", "age", ">", 40],
]);
// OR
const result = await mysqlUtil.select({
  tableName: "users",
  fields: ["name", "age"],
  params: [
    ["gender", "like", "female"],
    ["OR", "age", ">", 40],
  ],
}); // To fetch the name and age of all female users that pass a given condition.

Insert Query

Similary, there is a .insert method that runs a mysql insert query. This method accepts two(2) positional arguments or an object -

// Insert into `users` table
let data = {
  name: "Foo Bar",
  gender: "female",
  age: 28,
};
const result = await mysqlUtil.insert("users", data); // mysqlUtil.insert({tableName:"users", data}).then((res) => {});

// OR
const result = await mysqlUtil.insert({ tableName: "users", data: data });

Update Query

To run an update, use the .update method. This method accepts three arguments(The table, the new data, and the update condition).

// Insert into `users` table
let newData = {
  gender: "male",
};
let updateCondition = [
  ["id", "=", 55],
  ["AND", "age", "=", 28],
];
const result = await mysqlUtil.update("users", newData, updateCondition);

OR

const result = await mysqlUtil.update({
  tableName: "users",
  data: newData,
  params: updateCondition,
});

Delete Query

The .delete method accepts two arguments- The table name and the delete condition:

let params = [["id", "=", 55]];
const result = mysqlUtil.delete("users", params);

OR

const result = mysqlUtil.delete({ tableName: "users", params: params }); // mysqlUtil.delete({ tableName: "users", params });

.query method

The package also exposes a generic .query method. See the test folder on github for examples(apis, test) on how to use this method and the ones listed above.

Handling Raw SQL query

With the .rawQuery method, raw sql queries can be executed. Also, this method can be used to call stored procedures.

mysqlUtil
  .rawQuery("CREATE DATABASE IF NOT EXISTS kings_restaurant")
  .then((result) => {
    mysqlUtil.rawQuery(
      "CREATE TABLE IF NOT EXISTS customers(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255), phone VARCHAR(255))"
    );
  });

OR

const result = await mysqlUtil.rawQuery("CREATE DATABASE IF NOT EXISTS testdb");

const result = await mysqlUtil.rawQuery("select * from customers");

const result = await mysqlUtil.rawQuery("call fetchCustomers"); // Where fetchCustomers is the name of a stored procedure.

See the test folder on github for examples on how to use this method.

License

This project is licensed under the MIT License