Skip to Content
2

XS Advanced - Node.js Module - HDB Connection Error

Jan 06, 2017 at 04:30 PM

476

avatar image

Hello everybody,

i try to establish a connection and send some queries to the HANA 2.0 express edition, running on my laptop. I've build a XS Advanced app and now i'm writing a Node.js module using the sap-hdbext and express modules to establish a connection to the HDB like so:

module.exports = function() {
	var app = express();


	passport.use("JWT", new xssec.JWTStrategy(xsenv.getServices({
		uaa: {
			tag: "xsuaa"
		}
	}).uaa));
	app.use(passport.initialize());


	app.use(
		passport.authenticate("JWT", {
			session: false
		}),
		xsHDBConn.middleware()
	);


	//Simple Database Select - In-line Callbacks
	app.route("/simptab")
		.get(function(req, res) {
			var client = req.db;
			client.prepare(
				"select Test from \"project.db.data::SimpleTable\" ",
				function(err, statement) {
					if (err) {
						res.type("text/plain").status(500).send("ERROR: " + error);
						return;
					}
					statement.exec([],
						function(err, results) {
							if (err) {
								res.type("text/plain").status(500).send("ERROR: " + err);
								return;
							} else {
								var result = JSON.stringify({
									Objects: results
								});
								res.type("application/json").status(200).send(result);
							}
						});
				});
		});

I've setup the package.json file and the server.js and everything else just like in the Dev Guide and openSAP course.

But if i go to the URL "https://hxehost:....../node/simptab" to access my node module the following error occurs:

Error: Could not connect to any host: [ undefined:NaN - connect ECONNREFUSED 127.0.0.1 ]   at couldNotOpenConnectionError (/hana/shared/HXE/xs/controller_data/executionagent/executionroot/f6e141e5-a900-460a-a8b9-9052ee21b55d/app/node_modules/hdb/lib/protocol/ConnectionManager.js:130:13)   at ConnectionManager._openConnectionToHost (/hana/shared/HXE/xs/controller_data/executionagent/executionroot/f6e141e5-a900-460a-a8b9-9052ee21b55d/app/node_modules/hdb/lib/protocol/ConnectionManager.js:43:15)   at /hana/shared/HXE/xs/controller_data/executionagent/executionroot/f6e141e5-a900-460a-a8b9-9052ee21b55d/app/node_modules/hdb/lib/protocol/ConnectionManager.js:56:10   at Socket.onerror (/hana/shared/HXE/xs/controller_data/executionagent/executionroot/f6e141e5-a900-460a-a8b9-9052ee21b55d/app/node_modules/hdb/lib/protocol/Connection.js:168:5)   at Socket.g (events.js:291:16)   at emitOne (events.js:96:13)   at Socket.emit (events.js:188:7)   at emitErrorNT (net.js:1276:8)   at _combinedTickCallback (internal/process/next_tick.js:74:11)   at process._tickCallback (internal/process/next_tick.js:98:9)

What could be the cause? I've tried nearly every i could come up with to solve this but nothing worked.

Like i said, i've setup everything just like in the demos.

Please help.

10 |10000 characters needed characters left characters exceeded

Hi Rene,

we do have exactly the same issue. Could you find out what the reason of this behavior is?

BR,

Dirk

0
* Please Login or Register to Answer, Follow or Comment.

3 Answers

Best Answer
Sören Sauerbrei Feb 03, 2017 at 10:03 AM
1

Hi,

it seems, several devs encountered the same issue ;) We solved it by changing a bit our node.js-Server.. So, try this also, if you wish!

https://answers.sap.com/questions/119147/xs-advanced-nodejs-module-hdb-connection-error-con.html?childToView=120380#answer-120380

(in short, you need to add options.hana to your xsHDBConn.middleware() ! Be sure to declare options first, as shown via the provided link)

Share
10 |10000 characters needed characters left characters exceeded
Rene Mueller
Mar 09, 2017 at 02:55 PM
-1

Hi,

thank you Sören. Your answer is the right solution. Since posting my issue here, i've discovered this solution by myself.

I was confused by the videos of the openSAP course about HANA XS Advanced which never showed that these options have to be passed to the authentification module. I finally found the solution in the example project of the openSAP course.

Best regards,

René

Show 1 Share
10 |10000 characters needed characters left characters exceeded

Hey René,

I'm glad to hear that :) I've encountered the same trouble with those videos as you did, so I left all of the SAP Tutorial stuff aside ;)

KR,
Sören

0
Petar Dochev
Feb 02, 2017 at 07:46 AM
0

Hi,

From the error it seems HANA host and port are not properly configured.

What is xsHDBConn and how do you initialize it?

Make sure to use sap-hdbext and not sap-hdb-connection, which is deprecated.

To check the actual parameters passed to your app you can use the command:

xs env <app-name>

Best regards,

Petar

Share
10 |10000 characters needed characters left characters exceeded