Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

284
Vistas
Node.js y jdbc: TypeError: no se puede leer la propiedad 'url' de undefined

Soy nuevo en nodejs y JavaScript. Estoy probando un ejemplo muy básico de conexión de MySQL a nodejs. Estoy usando un paquete npm jdbc para este propósito. A continuación se muestra el fragmento de código que estoy usando para la conexión y obtengo la siguiente excepción. Puedes por favor ayudarme en esto.

Código:

 var express = require('express'); var app = express(); var server = require('http').Server(app); var https =require('http'); var io = require('socket.io')(server); var kafka = require('kafka-node'); var cassandra = require('cassandra-driver'); var jdbc = new (require('jdbc')); var jinst = require('jdbc/lib/jinst'); var Pool = require('jdbc/lib/pool'); var _ = require('underscore'); // var cors = require("cors"); app.use(express.static(__dirname + '/view')); server.listen(3000); app.use('/bower_components', express.static(__dirname + '/bower_components')); app.get('/', function (req, res, next) { res.sendFile(__dirname + '/index.html');}); if (!jinst.isJvmCreated()) { jinst.addOption("-Xrs"); jinst.setupClasspath(['../mysql-connector-java-5.1.39-bin.jar']); } var config = { url: 'jdbc:mysql://localhost:3306/DB', user : 'root', password: 'root', minpoolsize: 2, maxpoolsize: 3, drivername: 'com.mysql.jdbc.Driver' }; //Initialize jdbc object jdbc.initialize(config, function(err, res){ if (err){ console.log(err); } }); jdbc.open(function(err, conn) { if (conn) { //Run first query jdbc.executeQuery('show databases', function(err, results){ if (err){ console.log(err); } else if (results) { console.log(results); } }); }else{ console.log('Connection object:' + conn); console.log(err); } }); jdbc.close(function(err){ if(err) { console.log(err); } else { console.log('Connection closed successfully!');} });

Excepción:

 Field_Test\node_modules\jdbc\lib\pool.js:64 this._url = config.url; ^ TypeError: Cannot read property 'url' of undefined at JDBC.Pool (<Dir>\node_modules\jdbc\lib\pool.js:64:21) at new JDBC (<Dir>\node_modules\jdbc\lib\jdbc.js:6:8) at Object.<anonymous> (Web\app.js:10:12) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) at run (bootstrap_node.js:394:7)
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Su problema es con el requerimiento en la parte superior, según los documentos https://www.npmjs.com/package/jdbc , cuando crea una nueva instancia, necesita pasar los parámetros de configuración, puede hacerlo de dos maneras

 var config = {url: 'jdbc:mysql://localhost:3306/DB'} var jdbc = new (require('jdbc'))(config);

o puedes hacerlo en línea en el código

 var Jdbc = require('jdbc'); ... var config = {url: 'jdbc:mysql://localhost:3306/DB'} var jdbc = new Jdbc(config)

En el contexto de tu código.

 var express = require('express'); var app = express(); var server = require('http').Server(app); var https =require('http'); var io = require('socket.io')(server); var kafka = require('kafka-node'); var cassandra = require('cassandra-driver'); var Jdbc = require('jdbc'); var jinst = require('jdbc/lib/jinst'); var Pool = require('jdbc/lib/pool'); var _ = require('underscore'); // var cors = require("cors"); app.use(express.static(__dirname + '/view')); server.listen(3000); app.use('/bower_components', express.static(__dirname + '/bower_components')); app.get('/', function (req, res, next) { res.sendFile(__dirname + '/index.html');}); if (!jinst.isJvmCreated()) { jinst.addOption("-Xrs"); jinst.setupClasspath(['../mysql-connector-java-5.1.39-bin.jar']); } var config = { url: 'jdbc:mysql://localhost:3306/DB', user : 'root', password: 'root', minpoolsize: 2, maxpoolsize: 3, drivername: 'com.mysql.jdbc.Driver' }; var jdbc = new JDBC(config); //Initialize jdbc object jdbc.initialize(config, function(err, res){ if (err){ console.log(err); } }); jdbc.open(function(err, conn) { if (conn) { //Run first query jdbc.executeQuery('show databases', function(err, results){ if (err){ console.log(err); } else if (results) { console.log(results); } }); }else{ console.log('Connection object:' + conn); console.log(err); } }); jdbc.close(function(err){ if(err) { console.log(err); } else { console.log('Connection closed successfully!');} });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda