Javascript Node.js和jdbc:TypeError:无法读取属性';url';未定义的
我不熟悉nodejs和JavaScript。我正在尝试一个将MySQL连接到nodejs的非常基本的示例。为此,我使用了一个NPMJDBC包。下面是我用于连接和获取以下异常的代码片段。 你能帮我一下吗 代码: 例外情况:Javascript Node.js和jdbc:TypeError:无法读取属性';url';未定义的,javascript,mysql,node.js,jdbc,npm,Javascript,Mysql,Node.js,Jdbc,Npm,我不熟悉nodejs和JavaScript。我正在尝试一个将MySQL连接到nodejs的非常基本的示例。为此,我使用了一个NPMJDBC包。下面是我用于连接和获取以下异常的代码片段。 你能帮我一下吗 代码: 例外情况: Field_Test\node_modules\jdbc\lib\pool.js:64 this._url = config.url; ^ TypeError: Cannot read property 'url' of undef
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)
Field\u Test\node\u modules\jdbc\lib\pool.js:64
这个。_url=config.url;
^
TypeError:无法读取未定义的属性“url”
在JDBC.Pool(\node\u modules\JDBC\lib\Pool.js:64:21)
在新的JDBC(\node\u modules\JDBC\lib\JDBC.js:6:8)
反对。(Web\app.js:10:12)
在模块处编译(Module.js:570:32)
在Object.Module.\u extensions..js(Module.js:579:10)
在Module.load(Module.js:487:32)
在tryModuleLoad时(module.js:446:12)
在Function.Module.\u加载(Module.js:438:3)
位于Module.runMain(Module.js:604:10)
运行时(bootstrap_node.js:394:7)
根据文档,您的问题在于顶部的require,当您创建新实例时,您需要传递配置参数,您可以通过两种方式来完成
var config = {url: 'jdbc:mysql://localhost:3306/DB'}
var jdbc = new (require('jdbc'))(config);
或者,您可以在代码行中执行此操作
var Jdbc = require('jdbc');
...
var config = {url: 'jdbc:mysql://localhost:3306/DB'}
var jdbc = new Jdbc(config)
在代码的上下文中
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!');}
});
感谢您解决了这么多url问题,现在我得到了Field\u Test\app.js:40 jdbc.open(函数(err,conn){^TypeError:jdbc.open不是一个函数可能您使用的是旧版本的npm模块,但文档建议您使用reserve作为函数,而不是使用
jdbc.open
usejdbc.reserve
确定我会检查
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!');}
});