Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/2naive/mysql2-cache
MySQL2 upgrade: cache mysql queries, easy shortcuts, logging and debugging.
https://github.com/2naive/mysql2-cache
mysql mysql-cache mysql2 node-cache node-mysql node-mysql2
Last synced: 2 days ago
JSON representation
MySQL2 upgrade: cache mysql queries, easy shortcuts, logging and debugging.
- Host: GitHub
- URL: https://github.com/2naive/mysql2-cache
- Owner: 2naive
- Created: 2022-01-30T01:40:54.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-03-30T02:58:40.000Z (8 months ago)
- Last Synced: 2024-03-30T03:32:31.502Z (8 months ago)
- Topics: mysql, mysql-cache, mysql2, node-cache, node-mysql, node-mysql2
- Language: JavaScript
- Homepage:
- Size: 22.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mysql2-cache
[![NPM](https://nodei.co/npm/mysql2-cache.png?downloads=true&stars=true)](https://nodei.co/npm/mysql2-cache/)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/2naive/mysql2-cache)
![node-current](https://img.shields.io/node/v/mysql2-cache)
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/2naive/mysql2-cache/node.js.yml?branch=master)
![Coveralls github](https://img.shields.io/coveralls/github/2naive/mysql2-cache)
![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)> ✔ MySQL2 upgrade: cache queries, easy shortcuts, logging and debugging.
## Installation
```bash
npm install mysql2-cache --save
```## Sample Usage
```javascript
const mysql = require('mysql2-cache')
const db = mysql.connect({
host: 'localhost',
user: 'root',
database: 'test',
password: 'root'
})
db.q('SELECT * FROM test_table').then(res => console.dir)
```## Cache queries
```javascript
const mysql = require('mysql2-cache')
const db = mysql.connect({
host: 'localhost',
user: 'root',
database: 'test',
password: 'root'
})
db.q('SELECT * FROM test_table WHERE id=?', 1, true) // use cache with default ttl=300s
db.q('SELECT * FROM test_table WHERE id=?', 1, true, 300) // ttl in seconds
```## Debugging easy
Pass `DEBUG=mysql2-cache*` environment variable to pretty debug.
```bash
mysql2-cache:1 SELECT * FROM test_table WHERE age > ? [1] +0ms
mysql2-cache:1 ┌─────────┬─────────┬─────┐
mysql2-cache:1 │ (index) │ name │ age │
mysql2-cache:1 ├─────────┼─────────┼─────┤
mysql2-cache:1 │ 0 │ 'Alice' │ 90 │
mysql2-cache:1 │ 1 │ 'Bob' │ 42 │
mysql2-cache:1 └─────────┴─────────┴─────┘
mysql2-cache:1 +32ms
```## API
You may use all [MySQL2](https://github.com/sidorares/node-mysql2) methods plus:
### connect([PoolOptions](https://sidorares.github.io/node-mysql2/docs#using-connection-pools))
### async q(sql, params = [], cache = false, ttl = undefined)
### async qRow(sql, params = [], cache = false, ttl = undefined)
### async insert(table, row)
### async update(table, row, where = false)
### async delete(table, row, where = false)
### stat()
### cacheFlush(sql, params)
### cacheFlushAll()
### cacheStat()
## Getting help
If you've found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
## Contributing
Bug fixes, docs, and library improvements are always welcome. Please refer to our [Contributing Guide](CONTRIBUTING.md) for detailed information on how you can contribute.
If you're not familiar with the GitHub pull request/contribution process, [this is a nice tutorial](https://gun.io/blog/how-to-github-fork-branch-and-pull-request/).### Getting Started
If you want to familiarize yourself with the project, you can start by [forking the repository](https://help.github.com/articles/fork-a-repo/) and [cloning it in your local development environment](https://help.github.com/articles/cloning-a-repository/). The project requires [Node.js](https://nodejs.org) to be installed on your machine.
After cloning the repository, install the dependencies by running the following command in the directory of your cloned repository:
```bash
npm install
```You can run the existing tests to see if everything is okay by executing:
```bash
npm test
```