连接到我的数据库时没有任何反应

时间:2018-01-30 10:10:58

标签: javascript mysql node.js

你可以解释一下吗?

我最近一直在研究一些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>
谢谢你!

2 个答案:

答案 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