1
0
mirror of https://github.com/Microsoft/sql-server-samples.git synced 2025-12-08 14:58:54 +00:00
Files
sql-server-samples/samples/features/json/todo-app/nodejs-express4-rest-api/db.js
Jovan Popovic ec65352509 Added logs in db.js
Added more logging information in /json/nodejs/todo-app/db.js
2017-03-29 23:24:33 +02:00

85 lines
2.3 KiB
JavaScript

function createConnection() {
var config = {
server : "SERVER.database.windows.net",
userName: "USER",
password: "PASSWORD",
// If you're on Azure, you will need this:
options: { encrypt: true, database: 'DATABASE' }
};
var Connection = require('tedious').Connection;
var connection = new Connection(config);
return connection;
}
function createRequest(query, connection) {
var Request = require('tedious').Request;
var req =
new Request(query,
function (err, rowCount) {
if (err) {
console.trace(err);
throw err;
}
connection && connection.close();
console.log('Connection closed');
});
return req;
}
function stream (query, connection, output, defaultContent) {
var request = query;
if (typeof query == "string") {
request = createRequest(query, connection);
}
var empty = true;
request.on('row', function (columns) {
if(empty) {
console.log('Response fetched from SQL Database!');
empty = false;
}
output.write(columns[0].value);
});
request.on('done', function (rowCount, more, rows) {
_OnDone(empty, defaultContent, output);
});
request.on('doneProc', function (rowCount, more, rows) {
_OnDone(empty, defaultContent, output);
});
executeRequest (request, connection);
}
function _OnDone(empty, defaultContent, output) {
if(empty) {
output.write(defaultContent);
console.log('No results from database - default content is returned.');
}
try {
console.log('Closing Http Response output.');
output.end();
} catch (err) {
console.error(err);
}
}
function executeRequest (request, connection) {
connection.on('connect', function (err) {
if (err) {
console.trace(err);
throw err;
}
connection.execSql(request);
});
}
module.exports.createConnection = createConnection;
module.exports.createRequest = createRequest;
module.exports.executeRequest = executeRequest;
module.exports.stream = stream;