繁体   English   中英

如何返回\\从不查询mysql的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM