我想把一个结果从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,unreachable_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);
});
我将阅读回调,匿名函数和异步流模式,以帮助您熟悉这种新的编码风格。祝你好运!