当我试图连接数据库时,是否有任何问题?
is there any issue when i'm trying to connect database?
以下是我的代码:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '1',
database : 'test'
});
connection.connect();
data = connection.query('SELECT * FROM deneme', function(err, rows, fields){
if(err) throw err;
veri = rows;
return veri;
});
console.log(data);
当我像下面这样运行这个文件(index.js)
节点index.js
返回一些错误并且不显示数据。
我的mysql数据如下:
INSERT INTO `deneme` (`id`, `name`) VALUES
(1, 'yusuf'),
(2, 'ali');
有什么问题吗?
错误是:
{ _callback: [Function],
_ended: false,
_callSite: ' at Query.Sequence (/home/yusuf/Masaüstü/node/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:21)'n at new Query (/home/yusuf/Masaüstü/node/node_modules/mysql/lib/protocol/sequences/Query.js:11:12)'n at Protocol.query (/home/yusuf/Masaüstü/node/node_modules/mysql/lib/protocol/Protocol.js:41:24)'n at Connection.query (/home/yusuf/Masaüstü/node/node_modules/mysql/lib/Connection.js:90:25)'n at Object.<anonymous> (/home/yusuf/Masaüstü/node/index.js:10:19)'n at Module._compile (module.js:446:26)'n at Object..js (module.js:464:10)'n at Module.load (module.js:353:31)'n at Function._load (module.js:311:12)'n at Array.0 (module.js:484:10)',
sql: 'SELECT * FROM deneme',
typeCast: true,
nestTables: false,
_resultSet: null,
_results: [],
_fields: [],
_index: 0,
_loadError: null,
_events: { error: [Function], packet: [Function], end: [Function] } }
您正在尝试同步而不是异步地执行某些操作。
你的问题在这里:
data = connection.query('SELECT * FROM deneme', function(err, rows, fields){
if(err) throw err;
veri = rows;
return veri;
});
console.log(data);
在回调执行之前记录数据。这就是为什么你需要在它的回调中有代码,所以它说"一旦你完成了获取数据库结果,做这个"。
data = connection.query('SELECT * FROM deneme', function(err, rows, fields){
if(err) throw err;
veri = rows;
console.log(veri); // will be logged once its finished
});
您可以通过以下方式访问该函数之外的结果:
var results;
data = connection.query('SELECT * FROM deneme', function(err, rows, fields){
if(err) throw err;
veri = rows;
results = veri;
someOtherFunction();
});
var someOtherFunction = function(){
console.log(results);
}
你可以看看一个叫做async
的模块,它擅长做你想做的事情。
p。S
欢迎使用nodejs
相关文章:
- jQuery中是否内置了任何字符串格式化函数
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- Graphiti中是否有任何工具提示功能
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- 是否有任何可能的原因使我应该指定类型=“”;按钮“;用于我的按钮元素
- 是否有任何设置阻止JavaScript在系统上工作
- 是否有任何Javascript函数从指定的索引中进行正则表达式匹配
- 使用jQuery 1.8.1准备好多个$(document).是否有任何开销
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- javascript测试是否存在两个标志中的任何一个
- 是否有任何开源web应用程序具有良好的QUnit(或JSUnit)测试用例
- 使用jQuery.css()方法时,是否需要转义任何字符
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 在jquery中是否有任何方法或位置可以编写从Dom中删除页面后调用的方法
- 递归Javascript对象是否会导致任何问题(内存泄漏)
- 是否有任何理由不在不同的源文件中提供相同的模块
- 除了用于跟踪的IP地址之外,是否有任何计算机特定信息
- 是否有任何不需要后端的验证码角度指令