NODEJS和mysql-node并没有数据库更改

时间:2014-05-04 17:47:14

标签: javascript mysql node.js

我的代码:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : '192.168.2.20',
  user     : 'test',
  password : '123123123',
  database : 'dbtest',
});

connection.connect(function(err) {
  // connected! (unless `err` is set)
});

var query = connection.query('INSERT INTO posts (title) VALUES("data1");');

每次我使用MySQL Workbench运行此SELECT * FROM dbtest.posts;时,我都看不到任何更改或结果。

使用mysql-node的NodeJS没有正确编辑我的DB,我做错了什么?

编辑:

admin$ node debug test.js
< debugger listening on port 5858
connecting... ok
break in test.js:1
  1 var mysql      = require('mysql');
  2 var connection = mysql.createConnection({
  3   host     : '192.168.2.20',
debug> 

我在调用文件时遇到问题吗?它们保存在node_modules下,文件与node_modules

位于同一根目录中

1 个答案:

答案 0 :(得分:0)

您无法在示例中插入带有代码的数据,因为您的MySQL服务器的autocommit系统变量设置为false

在这种情况下,你可以做的是将此变量设置为true(请参阅de docs)或更改代码以强制提交,例如:

connection.query('INSERT INTO posts (title) VALUES("data1");', function(err, result) {
  if (err) { 
    connection.rollback(function () {
      throw err;
    });
  }
  connection.commit(function (err) {
    if (err) { 
      connection.rollback(function () {
        throw err;
      });
    }
    console.log('Commited!');
  });
});