我最近一直在研究一些node.js的东西来学习它以构建数据库接口。我已经能够很长时间地执行这种con.on()
而没有麻烦。但在这里,我很困惑。
var mysql = require('mysql');
var prompt = require('prompt');
var con = mysql.createConnection({
host: "blabla",
user: "bla",
password: "bla",
database: "blabla"
});
var schema_select = {
properties: {
select: {
description: 'what you wanna select bro? :'
},
from: {
description: 'from where bro ? :'
},
ask_where: {
description: 'do you wanna add where ? Y/N :'
},
where: {
description: 'say where then :',
ask: function() {
// only ask for WHERE option if user answered Y to ask_where question
return prompt.history('ask_where').value == 'Y';
}
}
}
};
con.on('error', function(err) {
if (err) throw err;
console.log("[mysql error]",err);
console.log("Connected!");
prompt.get(schema_select, function (err, result) {
//
// Log the results.
//
console.log('Command-line input received:');
var sql_request_where = '';
if (result.ask_where == 'Y'){
sql_request_where = 'WHERE ' + result.where;
}
var sql_request = 'SELECT ' + result.select + ' FROM ' + result.from;
con.query(sql_request, function (err, req_result) {
console.log(req_result);
console.log("[mysql error]",err);
})
});
});
当我在控制台上执行此代码时,它只是基本上什么也不做,没有错误,没有日志,没有。
当我尝试在console.log('blabla')
调用之外添加一些随机con.on()
时,它会起作用,但似乎我甚至不会进入con.on()
...
C:\Users\flami\Desktop>node first.js
C:\Users\flami\Desktop>
谢谢你!
答案 0 :(得分:0)
你的con.on只处理错误。由于它成功(触发on('connect'))你没有处理它,因此程序认为一切都已完成;并退出;
答案 1 :(得分:0)
根据包自述文件(https://github.com/mysqljs/mysql),您必须执行con.connect()
con.connect(callback)
收到回调:https://github.com/mysqljs/mysql#establishing-connections