【发布时间】: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不会误导你。 -
您需要自己编写数据同步系统,这可不是小事。