@sap/hdbext
Version:
Hana-client extension library and utility functions for using SAP HANA in node.js
43 lines (33 loc) • 1.06 kB
JavaScript
;
var _ = require('lodash');
var debug = require('debug')('hdbext:middleware');
var connOptions = require('./conn-options');
var clientFactory = require('./client-factory');
exports.middleware = function middleware(hanaService) {
var globalOptions = _.extend({}, connOptions.getGlobalOptions(), hanaService);
return function db(req, res, next) {
var requestOptions = connOptions.getRequestOptions(req);
var options = _.extend({}, globalOptions, requestOptions);
clientFactory.createConnection(options, function (err, client) {
if (err) {
err.status = 500;
return next(err);
}
req.db = client;
var end = res.end;
res.end = function () {
var resEndArgs = arguments;
debug('Cleanup triggered');
req.db.close(function (err) {
if (err) {
debug('Error while closing connection.', err);
}
delete req.db;
res.end = end;
res.end.apply(res, resEndArgs);
});
};
next();
});
};
};