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

database-funnel

v1.0.9

Published

Database Funnel is a lightweight Node.js library designed to simplify MySQL database operations within Node.js applications. With Database Funnel, you can effortlessly integrate MySQL databases into your Node.js projects, making tasks like CRUD operations

Downloads

57

Readme

Database Funnel

Database Funnel is a lightweight Node.js library designed to simplify MySQL database operations within Node.js applications. With Database Funnel, you can effortlessly integrate MySQL databases into your Node.js projects, making tasks like CRUD operations, data retrieval, and schema management more intuitive and efficient.

Installation

You can install Database Funnel via npm:

npm install database-funnel

Getting Started

To begin using Database Funnel in your Node.js application, you need to initialize it with your MySQL database connection details. Here's how:

import database from "database-funnel";

database.init({
  host: process.env.MYSQL_HOST,
  port: process.env.MYSQL_PORT,
  user: process.env.MYSQL_USER,
  password: process.env.MYSQL_PASSWORD,
  database: process.env.MYSQL_DATABASE,
});

Creating Models

In Database Funnel, models represent database tables. Defining a model automatically creates the corresponding table in the database. Here's an example of how to create a model:

import { Model } from "database-funnel";

const User = new Model("users", {
  name: ["string"],      // VARCHAR(300)
  surname: ["string"],   // VARCHAR(300)
  email: ["string", "unique"], // Adds uniqueness constraint
  male: ["boolean", null],    // Nullable
  female: ["boolean", null],  // Nullable
  details: ["text"],          // TEXT
  age: ["number"],            // INT
  diff: ["double", "default:0.1"], // DOUBLE with default value 0.1
});

Basic Operations

Database Funnel provides methods for performing basic CRUD operations:

Retrieve Data

  • get: Retrieve all records from the table.
  • first: Retrieve the first record from the table.
await User.get();
await User.first();

Create Data

  • make: Create a new record in the table.
await User.make({
  name: "Johnny",
});

Filter Data

  • where: Filter records based on conditions.
const users = await User.where("name", "=", "John").get();
const user = await User.where("name", "=", "John").first();

Sort Data

  • orderBy: Sort records based on a specified column.
await User.where("name", "=", "John").orderBy("name", "asc").get();

Update Data

  • update: Update records that match specified conditions.
await User.where("name", "=", "John").update({ name: "Demi" });

Contribution

Contributions to Database Funnel are welcome! Feel free to open issues for feature requests, bug fixes, or general improvements.

License

Database Funnel is licensed under the MIT License. See the LICENSE file for details.