【发布时间】:2015-08-28 21:55:04
【问题描述】:
我使用 node.js 编写了一个游戏,我使用 Postgres 包用于名为 pg 的节点。 我插入数据库的所有内容都有效。也可以检索插入的数据。重启测功机后数据依然存在。
插入的数据不超过几行。
但是过了一天左右,插入的数据在表中就不存在了。我阅读了 Heroku 文档,但找不到它发生的原因。
怎么了?
我正在使用 Heroku 的免费层和 Postgres 的爱好开发计划。
编辑:
我的数据库代码如下:
// I need to delete the rows from the database which are one day old, one week old and the third table not at all old
var flushTable = function(tableName, dateObj, callback) {
var client = null, query = null;
var strDate = getDateString(dateObj);
client = new pg.Client(connectionString);
client.connect();
query = client.query('DELETE FROM '+tableName+' WHERE latest_date<TO_DATE(\''+strDate+'\',\'YYYY-MM-DD\');', function(err, result) {
if(err) {
console.log(err);
client.end();
return;
}
client.end();
callback();
});
};
var createNonExistent = function(tableName, callback) {
var client = null, query = null;
client = new pg.Client(connectionString);
client.connect();
query = client.query('CREATE TABLE IF NOT EXISTS '+tableName+' (username VARCHAR(16) PRIMARY KEY NOT NULL, score INTEGER NOT NULL, latest_date DATE NOT NULL, latest_time TIME NOT NULL, ip VARCHAR(30) NOT NULL);', function(err, result) {
if (err) {
console.log(err);
client.end();
return;
}
console.log('Table Created');
client.end();
callback();
});
}
var readFromTable = function(tableName, callback) {
flushTable(tableName, new Date(), function(){
var client = null, query = null;
client = new pg.Client(connectionString);
client.connect();
query = client.query('SELECT * FROM '+tableName+' ORDER BY score DESC, latest_date DESC, latest_time DESC;', function(err, result){
if(err) {
console.log(err);
client.end();
return;
}
console.log('Read values');
console.log(result.rows);
client.end();
callback(result);
});
});
};
【问题讨论】:
标签: node.js postgresql heroku