connecting to database:
sql = require("msnodesqlv8");
const connectionString = "Server={localhost}; Database={Products}; Trusted_Connection=Yes;Driver={SQL Server Native Client 11.0}; "
const query = "SELECT * FROM Products"
sql.query(connectionString, query, (err, rows) => {
console.log(rows);
});
Accessing it through API
const express = require('express')
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
const port = 3000
app.listen(port, () => console.log(Example app listening on port ${ port }!))
const sql = require("msnodesqlv8");
const connectionString = "Server=<server_name>; Database=<database_name>; Trusted_Connection=Yes;Driver=SQL Server Native Client 11.0; "
let query;
//const query = "SELECT TOP (10) * FROM <table>"
app.get('/test', (req, res) => {
res.send('{"query": "SELECT TOP (10) * FROM <table>"} nr supported method is Post');
}
);
app.post('/test', (req, res) => {
query = req.body.query;
sql.query(connectionString, query, (err, rows) => {
res.send({ rows: rows, error: err });
}
)
}
);
app.all('/test', (req, res) => {
res.send("Not supported");
}
);
Enabling https:
install git for windows
Navigate to:
<installation>\Git\usr\bin
see if you have a file called openssl.exe
run the below command to create the ssl certificate
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
Now make our module ssl
const app = require('express')();
const https = require('https');
const fs = require('fs');
//GET home route
app.get('/', (req, res) => {
res.send('Hello World');
});
// we will pass our 'app' to 'https' server
https.createServer({
key: fs.readFileSync('./key.pem'),
cert: fs.readFileSync('./cert.pem'),
passphrase: 'praveen'
}, app)
.listen(127.0.0.1,3000);
Avoiding sql injection
query = (req.body.query).toString().replace(/[^a-zA-Z 0-9]/g, "") ;