tediore v5.0.1

Simple wrapper around tedious, with a few extras features. Note that the full tedious API is not currently supported, namely handling transactions and output parameters.
Install
npm install tediore
Config
Setup a dbConfig.json file or config object as follows:
{
connection:
{
userName: "myUser",
password: "myPassword",
server: "127.0.0.1",
options:
{
database: "myDatabase",
connectTimeout: 15000,
requestTimeout: 120000,
useUTC: false,
useColumnNames: false,
rowCollectionOnDone: false,
rowCollectionOnRequestCompletion: false
}
},
pool:
{
min: 0,
max: 25,
idleTimeoutMillis: 300000,
retryDelay: 5000,
acquireTimeout: 60000
},
misc:
{
dateTimeFormat: "YYYY-MM-DD hh:mm:ss",
dateFormat: "YYYY-MM-DD",
timeFormat: "hh:mm:ss"
}
}The connection property uses the same configuration options as tedious' Connection class. The pool property uses the same configuration options as tedious-connection-pool.
The misc property accepts the following options:
dateTimeFormat{String} The formatting that should be applied to DateTime columns when usingstringifyoption.dateFormat{String} The formatting that should be applied to Date columns when using usingstringifyoption.timeFormat{String} The formatting that should be applied to Time columns when using usingstringifyoption.
API
Tediore exposes the following properties:
connectionPool{Object} This a reference to the connection pool instance.types{Object} This is a reference to tedious TYPES.bulkLoad{Function} used to abstract tedious' BulkLoad.execSQL{Function} used to abstract tedious' Request.options{Object} configuration objects as follows:stringify{Boolean} Iftruethen rows will have their values converted into string representations. Supported types here are defined here.toArray{Boolean} Iftrueformats the result sets as a 2D array, i.e. CSV matrix instead of an array of objects.callProcedure{Boolean} IftrueexecSQL uses tedious'callProcedureinstead ofexecSql.
Usage (Common JS)
const tediore = require("tediore")
const dbConfig = require("./dbConfig.json")
const db = new tediore.Tediore(dbConfig)Usage (ES2015)
import {Tediore} from "tediore"
import * as dbConfig from "./dbConfig.json"
const db = new Tediore(dbConfig)execSQL
// Simple SELECT (one result set returned)
db.execSQL({statement: "SELECT TOP 1 * FROM [User]"})
.then(results => console.log(results))
.catch(error => console.log(error.message))
// Simple SELECT with parameterised query
db.execSQL(
{
statement: "SELECT TOP 1 * FROM [User] WHERE ID = @ID",
parameters:
[
["ID", db.types.Int, 1]
]
})
.then(results => console.log(results))
.catch(error => console.log(error.message))N.B. Check the examples folder for more usage examples.
bulkLoad
// bulkLoad -> returns a promise containing the number of rows inserted or an error.
const users =
[
{
FirstName: "Adam",
LastName: "Jenson",
EmailAddress: "adam.jensen@sarifindustries.com"
},
{
FirstName: "Billy",
LastName: "Bob",
EmailAddress: "billy@bob.name"
},
{
FirstName: "Charlie",
LastName: "Cook",
EmailAddress: "charlie.cook@gmail.com"
}
]
const columns = []
columns.push(["FirstName", db.types.NVarChar, { nullable: true }])
columns.push(["LastName", db.types.NVarChar, { nullable: true }])
columns.push(["EmailAddress", db.types.NVarChar, { nullable: true }])
columns.push(["CreatedOn", db.types.DateTime, { nullable: false }])
const rows = []
users.forEach(user => rows.push({FirstName: user.FirstName, LastName: user.LastName, EmailAddress: user.EmailAddress, CreatedOn: new Date()}))
db.bulkLoad({table: `${dbConfig.options.database}.dbo.[User]`, columns, rows})
.then(rowCount => console.log(`Inserted ${rowCount} rows.`))
.catch(error => console.log(error.message))9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago