UNPKG

@sap/hdbext

Version:

Hana-client extension library and utility functions for using SAP HANA in node.js

43 lines (33 loc) 1.06 kB
'use strict'; 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(); }); }; };