# node-queries

> Node.js library for building SQL queries and HTTP responses using SQL-like DSL.

Latest version **0.3.0** (published 2017-12-08) · 0 weekly downloads

## Install

```sh
npm install node-queries
pnpm add node-queries
yarn add node-queries
bun add node-queries
```

## Health

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

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.3.0 |
| Published | 2017-12-08 |
| First published | 2017-10-20 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 (+7 in 1 direct dependencies) |
| Install scripts | no |
| Author | Jiri Kapoun |
| Maintainers | kapoun |

## Links

- npm: https://www.npmjs.com/package/node-queries
- Issues: https://github.com/kapoun/node-queries/issues
- npm.io page: https://npm.io/package/node-queries

## Dependencies (2)

- [rxjs](https://npm.io/package/rxjs.md) ^5.4.3
- [mysql2](https://npm.io/package/mysql2.md) ^1.3.5

## Recent versions

- 0.3.0 (latest) — 2017-12-08
- 0.2.2 — 2017-12-04
- 0.2.1 — 2017-12-04
- 0.2.0 — 2017-12-04
- 0.1.0 — 2017-11-24
- 1.0.0 — 2017-10-21
- 0.1.1 — 2017-10-20

## README

# node-queries

Node.js library for building SQL queries and HTTP responses using SQL-like DSL.

## Installation

```sh
$ npm install node-queries
```

## Usage

Import `node-queries` module:

```javascript
import nodeQueries from 'node-queries';
```

Initialize database connection:

```javascript
nodeQueries.init({
  "host":     "db.example.com",
  "user":     "user",
  "password": "P4ssw0rd!",
  "database": "example"
});
```

Add middleware to your HTTP server:

```javascript
let app = express();
app.use(nodeQueries.middleware);
```

That's it. You can use queries in your controllers now:

```javascript
let router = express.Router();
app.use(router);
router.get('/items', function(request, response) {
  nodeQueries
    .selectFrom('item')
    .where({
      'visible': 1
    })
    .whereLike({
      'name': request.params.q
    })
    .orderBy('time_added', 'DESC')
    .limitOffset(request.params.limit, request.params.offset)
    .postprocess(item => {
      item.code = item.code.toUpperCase();
      delete item.visible;
    })
    .execute(response);
};
```

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