关于module.exports的问题
-
-
- 我先写了一个demoModule.js文件代码如下*
-
- var mysql = require(’…/node_modules/mysql’);
- connection = mysql.createConnection({
-
host: 'localhost',
-
user: 'root',
-
password: '****',
-
database:'node',
-
port: 3306
- });
- module.exports.select = function(date){
-
connection.query(date,function(err,res1){
-
if (err) {
-
console.log('err');
-
} else {
-
console.log(res1);
-
}
-
return res1;
-
});
-
connection.end();
- }
我用另一个js调用demoModule.js
- var sql = require(’./modules/demoModule’);
- var res = sql.select(‘select * from user’);
- console.log(‘res:’+res);
结果: res:undefined [ RowDataPacket { id: 1, name: ‘zimu’, password: ‘0.0’ } ]
我想问为什么先打印了res,而不是先得到查询结果,再打印res; 我知道这应该是异步的问题,但不知道怎么解决,求帮助,thanks
4 回复
sql.select(‘select * from user’, function(err, result){
console.log(result)
})
还有你的这个函数写得错误百出:
module.exports.select = function(date){
connection.query(date,function(err,res1){
if (err) {
console.log('err');
} else {
console.log(res1);
}
return res1;
});
connection.end();
}
@jingsam 懂了,非常感谢
module.exports.select = function (query, callback) {
connection.query(query, function (err, data) {
connection.end();
callback(err, data);
});
}
var sql = require('./modules/demoModule');
var res = sql.select('select * from user', function (err, data) {
if (err) {
console.error(err);
} else {
console.log('res: ' + data);
}
});