kursat
9/25/2019 - 3:20 PM

MapD Node.js Connection

MapD Node.js Connection

const MapdCon = require('@mapd/connector');

class OmniSciConnector {
	constructor() {
		if (OmniSciConnector.instance) {
			return OmniSciConnector.instance;
		}

		OmniSciConnector.instance = this;

		new MapdCon()
			.protocol('http')
			.host('192.168.1.56')
			.port('6278')
			.dbName('mapd')
			.user('mapd')
			.password('HyperInteractive')
			.connect((err, con) => {
				this.connection = con;
			});
	}
}

module.exports.OmniSciConnector = new OmniSciConnector();

OmniSciConnector.connection.queryAsync(query, {}).then(data => {
  const newData = data.map(item => {
    Object.keys(item).map(field => {
      try {
        if (item[field] && item[field].buffer) {
          let result = 0;

          for (let i = item[field].buffer.length; i > 0; i--) {
            result += item[field].buffer[i - 1] << (8 * (8 - i));
          }

          item[field] = result;
        }
      } catch (e) {}
    });

    return item;
  });

  return JSON.stringify({
    rows: newData,
    total_rows: newData.length,
    fields: {},
  });
});