Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

282
Visualizações
Node.js and jdbc : TypeError: Cannot read property 'url' of undefined

I am new to nodejs and JavaScript. I am trying a very basic example of connecting MySQL to nodejs. I am using a npm jdbc package for this purpose. Below is the code snippet I am using for connection and getting below exception. Can you please help me on this.

Code:

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!');}
});

Exception:

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 Respostas
Responde à pergunta

0

Your issue is with the require at the top, as per the docs https://www.npmjs.com/package/jdbc, when you create a new instance you need to pass the config parameters you can do it two ways

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

or you can do it in line in the code

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

In the context of your code

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda