# sqlistener

> A plugin that uses SQL to detect when a change, modify, delete, etc. query occurs.

Latest version **0.0.3** (published 2023-07-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install sqlistener
pnpm add sqlistener
yarn add sqlistener
bun add sqlistener
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.3 |
| Published | 2023-07-23 |
| First published | 2023-07-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=16.0.0 <18.13 |
| Dependencies | 4 |
| Unpacked size | 44.6 KB |
| Known vulnerabilities | 0 (+4 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | devkimson |
| Maintainers | devkimson |
| Keywords | sql, mysql2, knex, promise, node, eventlistener, hook |

## Links

- npm: https://www.npmjs.com/package/sqlistener
- Repository: https://github.com/AnyRequest/SQListener
- Issues: https://github.com/AnyRequest/SQListener/issues
- npm.io page: https://npm.io/package/sqlistener

## Dependencies (4)

- [knex](https://npm.io/package/knex.md) ^2.5.1
- [mysql2](https://npm.io/package/mysql2.md) ^3.5.2
- [express](https://npm.io/package/express.md) ^4.18.2
- [fastify](https://npm.io/package/fastify.md) ^4.20.0

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 0.0.3 (latest) — 2023-07-23
- 0.0.1-beta — 2023-07-19
- 0.0.1 — 2023-07-19

## README

# SQListener

A plugin that uses SQL to detect when a change, modify, delete, etc. query occurs.

## Version

0.0.2

## Usage

```bash
npm install --save sqlistener
```

현재 MySQL, MariaDB에서만 가능하며 사용법은 아래와 같습니다.

```javascript
import express from "express";
import SQListener from "../src/index";
import mysql from "mysql2";
import User from "./model/User";

const DB_CONFIG = {
  host: "localhost",
  port: 3307,
  database: "db_name",
  user: "root",
  password: "password",
};

const conn = mysql.createConnection(DB_CONFIG);

conn.connect();

const app = express();

/* 리스너 초기화 */
const listener = new SQListener(app);
listener.init({
  type: "mysql2",
  ...DB_CONFIG,
});
/* 이벤트 감지 시작 */
listener.watch([Model, ...]);

/* 이벤트 추가 */
listener.addEventListener("query", "user", (type, name, index) => {
  console.log("추가 감지!", this, type, name, index);
});

app.get("/", (req, res) => {
  console.log("hello world");
  res.send("done");
});
app.post("/", (req, res) => {
  conn.query(`INSERT INTO user (name) values('kimson')`);
  res.send("done");
});

app.listen(9090, () => {
  console.log("listening on http://localhost:9090");
});
```

---
_Source: https://npm.io/package/sqlistener · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
