【问题标题】:Node.js store remote database locally (sync)Node.js 在本地存储远程数据库(同步)
【发布时间】:2015-10-31 00:20:27
【问题描述】:

我有一个应用程序使用此脚本连接到远程 MySQL 数据库:

var mysql      = require('mysql');
var $          = require('jquery');

var connection = mysql.createConnection({
  host     : 'somehost.com',
  user     : 'admin',
  password : 'admin',
  database : 'food'
});

connection.connect(function(err) {
  if (err) {
    document.write('error connecting: ' + err.stack + '<br>');
    return;
  }

  document.write('Conectat cu ID ' + connection.threadId + '<br>');
});

connection.query('SELECT * FROM recipes', function(err, rows, fields) {
  if (err) throw err;

  rows.forEach(function (item) {
    $("body").append('<span style="color: blue; font-weight: bold;">Denumire:</span> ' + item.denumire + ' <span style="color: blue; font-weight: bold;">Ingrediente:</span> ' + item.ingrediente + '<br>');
  })

});

connection.end();

问题是我在离线时无法使用该应用程序(互联网可能会失败,但我仍然需要能够使用该应用程序)。 有什么方法可以在应用程序启动时将数据库存储在本地(实际上是存储它,而不是在会话内存中),这样即使我重新启动应用程序也可以访问数据库?

【问题讨论】:

  • 像你一样使用本地数据库。您无需连接互联网即可访问 127.0.0.1
  • 你应该把connection.query放在connect()回调中。尽管在连接到远程服务器时,这并不能保证离线使用。 127.0.0.1 是本地服务器,不需要连接。
  • localhost 仅用于测试,不会是实际主机。我已经编辑了我的帖子,所以127.0.0.1 不会误导你。
  • 您需要自己编写数据同步系统,这可不是小事。

标签: mysql database node.js


【解决方案1】:

我已设法使用此脚本将数据库本地复制到 JSON 文件:

connection.query('select * from database.table;', function(err, results, fields) {
    if (!err) {
      fs.writeFile('location\name.json', JSON.stringify(results), function(err) {});
    }
  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 2019-02-08
    • 2014-10-19
    • 2013-03-07
    • 2011-07-27
    • 1970-01-01
    相关资源
    最近更新 更多