Connect to Your Database Using MS SQL Proxy with Fixed IP Address
Lapps provide node-mssql node package to connect with MS SQL host. It is exposed via a library function that will ensure that your DB request are going via a fixed IP address. The same IP address can be whitelisted in the client DB server to ensure that the requests are coming from a known and expected source, in this case, our Lapps.
We have exposed the new function as ls.lib.mssqlproxy.query. Below is the signature of the function –
ls.lib.mssqlproxy.query(connectionOptions, queryStatement,callback=null)
Below are the parameters description in detail
connectionOptions
Defines the connection configuration to make a database connection. Below are the four properties expected –
let connectionOptions = { "user": "db user", "password": "db password", "server": "host", "database": "DB Name" }
queryStatement
Query statement to be executed against the DB, which is passed a string. Ensure that the sting is a valid string and single and double quotes are handled correctly.
let queryStatement = "select COl1,Col2 from TableName where Col3='ABC'"
callback
callback is optional. It returns two parameters, “error” and “response”. In case callback
is not passed, the function returns a “Promise”.
Timeout
The maximum timeout for the query is set as 3000 ms.
IP Addresses
Note: To obtain the fixed IP address for your Lapps, please reach out to your account manager, or write to support@leadsquared.com.
Complete Sample Code
callback based approach
let connectionOptions = { "user": "db user", "password": "db password", "server": "host", "database": "DB Name" } let queryStatement = "select COl1,Col2 from TableName where Col3='ABC'" ls.lib.mssqlproxy.query(connectionOptions, queryStatement,(error,res)=>{ if(error){ //handle error here ls.log.Error("error occured",error) } else { // handle successful response here ls.log.Info("got data",res) } });
Promise Based Approach
let connectionOptions = { "user": "db user", "password": "db password", "server": "host", "database": "DB Name" } let queryStatement = "select COl1,Col2 from TableName where Col3='ABC'" ls.lib.mssqlproxy.query(connectionOptions, queryStatement) .then((res)=> { // handle successful response here ls.log.Info("got data",res) }) .catch((error)=> { //handle error here ls.log.Error("error occured",error) })