终止nodejs中的回调

时间:2015-06-10 14:47:46

标签: mysql node.js

我对nodejs很新。我正在使用mysql节点模块。这就是我使用它的方式:

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'sample'
});

connection.connect(function (err) {
    if (!err) {
        console.log("Database is connected ... \n\n");
    } else {
        console.log("Error connecting database ... \n\n");
    }
});

var post  = {PersonID: 1, Name: 'Prachi', City: 'Blore'};
var query = connection.query('INSERT INTO Persons SET ?', post, function(error, result) {
    if (error) {
        console.log(error.message);
    } else {
        console.log('success');
    }
});
console.log(query.sql);

此节点代码在功能上有效。如同,它将数据添加到表中。但它并没有终止。我犯的错是什么?

2 个答案:

答案 0 :(得分:2)

使用connection.end()关闭连接

var query = connection.query('INSERT INTO Persons SET ?', post, function(error, result) {
    connection.end();
    if (error) {
        console.log(error.message);
    } else {
        console.log('success');
    }
});

答案 1 :(得分:2)

仔细查看官方文档,您必须关闭连接:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
  if (err) throw err;

  console.log('The solution is: ', rows[0].solution);
});

connection.end();