Redshift acceso de datos desde el nodo jdbc

Estoy obteniendo un error por debajo cuando trato de datos de desplazamiento al rojo con el código mencionado a continuación

var jdbc = new ( require('jdbc') ); var config = { libpath: 'C:/Users/ABCD/Desktop/jar/RedshiftJDBC41-1.1.6.1006.jar', //libs: [__dirname + 'path/to/other/jars.jar'], drivername: 'com.amazon.redshift.jdbc41.Driver', url: 'jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev', user: 'xxxx', password: 'xxxxx' }; jdbc.initialize(config, function(err, res) { if (err) { console.log(err); } }); var genericQueryHandler = function(err, results) { if (err) { console.log(err); } else if (results) { console.log(results); } jdbc.close(function(err) { if(err) { console.log(err); } else { console.log("Connection closed successfully!"); } }); }; jdbc.open(function(err, conn) { if (conn) { // SELECT statements are called with executeQuery jdbc.executeQuery("select * from information_schema.tables", genericQueryHandler); } }); 

Error:

 C:\Users\ABCD> node redshift.js C:\Users\ABCD\node_modules\jdbc\lib\jdbc.js:62> if(this._props.getPropertySync('user') === undefined){> ^ TypeError: undefined is not a function at JDBCConn.initialize (C:\Users\ABCD\node_modules\jdbc\lib\jdbc.js:62:20) at Object. (C:\Users\ABCD\Desktop\AngularJS\redshift.js:15:6) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:501:10) at startup (node.js:129:16) at node.js:814:3 

¿Podría por favor avisarme si hay algún problema con el uso del nodo jdbc mencionado anteriormente para el desplazamiento al rojo?

Tenga en cuenta que esta respuesta se aplica solo a node-jdbc 0.0.15 y anteriores. No funcionará para node-jdbc 0.1.1 o posterior, ya que la API se ha modificado completamente y no es compatible con versiones anteriores.

Intenta reemplazar las dos líneas en tu configuración

  user: 'xxxx', password: 'xxxxx' 

con

  properties: [ ['user', 'xxxx'], ['password', 'xxxxx'] ] 

Recibí el mismo error que cuando intentaba usar Node para conectarse a una base de datos Oracle XE local. Después de hacer el cambio anterior pude conectarme. No creo que el error que está recibiendo sea específico de RedShift; creo que afecta a todas las bases de datos.

Tenga en cuenta que las propiedades anteriores deben especificarse como una matriz de matrices de 2 elementos. Un objeto como el siguiente parecería la forma obvia de especificar las propiedades, pero no funciona:

  // Don't do this, it doesn't work. properties: { user: 'xxxx', password: 'xxxxx' } 

Para ser honesto, la solución que he propuesto anteriormente es una solución. Solo lo encontré leyendo la fuente del módulo jdbc. No puedo decir que estoy muy impresionado con este módulo, que con el código de ejemplo que figura en la documentación no funciona, y con un formato poco intuitivo y no intuitivo para especificar propiedades personalizadas.

    Intereting Posts