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

标签 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 没有正确编辑我的数据库,我做错了什么?

编辑:

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在同一根目录

最佳答案

您无法使用示例中的代码插入数据,可能是因为您的 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!');
  });
});

关于javascript - NODEJS 和 mysql-node 并且没有数据库更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23459528/

相关文章:

javascript - 如何在 Cypress 中使用不同的夹具运行相同的测试?

javascript - 如何使用 JavaScript 从文本区域获取单击的单词

php - 如何在 MYSQL 中使用 REGEXP 来匹配数组中的日期?

mysql - SQL 查询更改组子句

node.js - 更新亚马逊s3存储桶中每个文件的 header

javascript - 是否有与 Node.js 一起使用的stream.on ('data' )类似的.NET Core?

php - 使用 PHP 查询数据库,通过 AJAX 获取结果作为变量,使用初始变量的值再次查询数据库

angularjs - 使用 ngRoute 进行 Angular 路由不适用于某些路由

node.js - 当我运行 "npm run ng new app"时,任何人都可以解释这个错误吗?

javascript - 在 Angularjs 应用程序中使用 AND 操作过滤基于 ng 重复的多个属性