https://github.com/naujiano/node-sql-query
Node.js query interface for Microsoft SQL Server databases.
https://github.com/naujiano/node-sql-query
database database-access microsoft-sql-server mssql nodejs query-builder
Last synced: 3 months ago
JSON representation
Node.js query interface for Microsoft SQL Server databases.
- Host: GitHub
- URL: https://github.com/naujiano/node-sql-query
- Owner: Naujiano
- License: gpl-3.0
- Created: 2017-10-01T02:57:55.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-02-24T04:03:26.000Z (almost 6 years ago)
- Last Synced: 2025-03-06T19:15:32.592Z (10 months ago)
- Topics: database, database-access, microsoft-sql-server, mssql, nodejs, query-builder
- Language: JavaScript
- Size: 31.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# A Node.js query interface for Microsoft SQL Server
This repository contains a Node.js interface that can query and paginate results from Microsoft SQL Server databases.
It internally handles the **connection establishment** and the **connection pools** so that many queries can be executed simultaneously.
# Installation
```
npm install node-sql-query
```
# Usage
```js
const nsq = require ( 'node-sql-query' )()
, connConfig = {
"user": "sa",
"password": "Sqlserver0",
"server": "localhost\\SQLEXPRESS",
"database": "vsegbas",
"port": 55857,
"requestTimeout": 600000
}
nsq.request (
"SELECT getdate() FROM sys.tables"
, connConfig
, function ( recorset ) { console.log(recorset) }
)
nsq.dbq ({
"columns": [
"clientes.cli_id",
"cli_apellido1",
"cli_apellido2"
],
"schemaSyntax": "polizas inner join clientes on polizas.cli_id=clientes.cli_id",
"dbConnConfig": connConfig,
"orderbyColumns": [
"clientes.cli_id"
],
"offset": 4,
"pageSize": 4,
"language": "spanish"
}, function ( recorset ) {
console.log(recorset)
})
```
# Methods
### .request(**sqlSyntax**,**connConfig**,**cb**)
Executes a SQL command.
#### Parameters
* **sqlSyntax**
(*string*) (Required)
The SQL command to pass to the database.
* **connConfig**
(*object*) (Required)
An object with the connection parameters. Refer to [`node-mssql` general configuration](https://github.com/patriksimek/node-mssql#general-same-for-all-drivers)
* **cb**
(*function*) (Required)
Callback function that will be called at the end of the request. The recorset (object) or the error will be passed as parameter.
### .dbq(**query**,**cb**)
Executes a parametrized SELECT or INSERT or UPDATE or DELETE or Stored Procedure statement.
#### Parameters
* **query**
(*object*) (Required)
An object with the following keys:
- `operation`: (*string*) Posible values are: `select`, `insert`, `update`, `delete`, `sp`.
- `language`: (*string*) Refer to SQL Server `SET LANGUAGE` command for the available options.
- `dbConnConfig`: (*object*)(Required) An object with the connection parameters. Refer to [`node-mssql` general configuration](https://github.com/patriksimek/node-mssql#general-same-for-all-drivers)
- `columns`: (*array*)(Required) An Array with the names of the columns.
- `schemaSyntax`: (*string*)(Required)
- `whereSyntax`: (*string*)
Only available for `select` operation:
- `orderbyColumns`: (*array*)
- `pageSize`: (*string*)
- `offset`: (*string*)
Only available for `insert` or `update` operations:
- `values`: (*array*) Must have the same length as `columns`. Values that will be assigned to each column.
Only available for `sp` operation:
- `sp_name`: (*string*) The name of the Stored Procedure followed by the parameters.
**The resultant SQL queries will be composed like this:**
**SELECT**
`SET LANGUAGE [language] SELECT [columns] FROM [schemaSyntax] WHERE [whereSyntax] ORDER BY [orderbyColumns]`
The `pageSize` (number of records per page) and `offset` (number of records to skip) parameters allows for paging the results.
**INSERT**
`SET LANGUAGE [language] INSERT INTO [schemaSyntax] ( [columns] ) VALUES ( [values] )`
**UPDATE**
`SET LANGUAGE [language] UPDATE [schemaSyntax] SET ( [columns[0]] = [values[0]], [columns[1]] = [values[1]], ... ) WHERE [whereSyntax]`
**DELETE**
`SET LANGUAGE [language] DELETE [schemaSyntax] WHERE [whereSyntax]`
**SP**
`SET LANGUAGE [language] EXEC [sp_name]`
* **cb**
(*function*) (Required)
Callback function that will be called at the end of the request. The recorset (object) or the error will be passed as parameter.