[英]How do I return an asynchronous DB query result from one module to another using Node.js?
[英]how to return \ retrieve a result from node.js module that does query to mysql?
我想将mysql查询的结果传递给以上级别...
我有这个模块: mySQLconnect.js :
var connection = require('mysql').createConnection({
host : 'localhost',
user : 'admin',
password : ''
});
exports.querySelect = querySelect;
function querySelect(query){
var result = connection.query(query, function(err, rows){
return (rows[0]);
});
return result;
}
当我从外部调用此函数时,让我们从app.js说:
var DBconnector = require('mySQLconnect');
var result = DBconnector.querySelectUser("SELECT * FROM TB_USERS");
但是我得到的结果是其他东西-这是从mysql.js模块接收到的对象:
connection.query(查询,函数(错误,行)
它具有: _resultSet = null和不可达的_results = [Array]
不好
我检查了node-mysql网站,但没有找到什么connection.query返回。
有什么想法可以通过结果吗?
您正在使用过程函数包装对DB的异步调用-来自像PHP这样的过程语言的nodejs初学者经常犯的错误。
您可以将mySQLconnect.js
模块简化为以下内容:
var connection = require('mysql').createConnection({
host : 'localhost',
user : 'admin',
password : ''
});
exports.querySelect = connection.query;
然后食用它:
var DBconnector = require('mySQLconnect');
DBconnector.querySelect("SELECT * FROM TB_USERS", function (err, rows) {
console.log(err || rows);
});
我将阅读有关回调,匿名函数和异步流模式的内容,以帮助您将注意力转向这种新型编码方式。 祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.