Saltar al contenido

SAP HANA XS Advanced: acceda a la base de datos desde Node.js.

El enfoque de registro predeterminado en Node.js es usar controladores de llamadas / eventos. Esto sucede porque incluso las diversas partes de una solicitud de base de datos (enlace, declaración preparada, ejecución, etc.) son operaciones sin bloqueo.

Sugerencia: una recuperación es una operación asincrónica que se ejecuta después de que se completa otra notificación.

Agregue un controlador de segunda vía, llamado example2, que usa el async módulo:

var async = require("async");
//Simple Database Select Via Client Wrapper/Middelware - Async Waterfall
app.get("/example2", (req, res) => {
	let client = req.db;
	async.waterfall([
		function prepare(callback) {
			client.prepare(`SELECT SESSION_USER, CURRENT_SCHEMA
											FROM "DUMMY"`,
				(err, statement) => {
					callback(null, err, statement);
				});
		},

		function execute(err, statement, callback) {
			statement.exec([], (execErr, results) => {
				callback(null, execErr, results);
			});
		},
		function response(err, results, callback) {
			if (err) {
				res.type("text/plain").status(500).send(`ERROR: ${err.toString()}`);
			} else {
				var result = JSON.stringify({
					Objects: results
				});
				res.type("application/json").status(200).send(result);
			}
			return callback();
		}
	]);
});

Eche un vistazo a los dos ejemplos recién agregados. Puede notar fácilmente que este último es más fácil de leer, aunque el tiempo de ejecución no cambia. Puede consultar más información sobre async módulo en el async documentación.

Hecho

Inicie sesión para responder la pregunta