Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

281
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!