使用NodeJS防止在Sqlite中缓存select查询结果

时间:2016-02-10 04:20:49

标签: node.js sqlite

我目前正在使用express从NodeJS编写API,从Sqlite数据库中检索数据。包含要检索的数据的表有三列:

  
      
  • ID - 整数
  •   
  • VALUE - Real
  •   
  • DATERECORDED - 整数
  •   

将返回过去五个月的数据,为此,我使用以下查询:

SELECT ID, VALUE FROM DATA WHERE DATERECORDED BEWTEEN date('now') AND date('now', '-5 months')

我最近从数据库中删除了几条记录并输入了新记录。但是,当我向我的API发出GET请求时,我仍然会收回当旧记录包含在数据库中时将返回的数据。我甚至删除了数据库中的所有记录,但旧的结果仍然被返回。反正我是否可以阻止这种缓存?

我也尝试将cache_size设置为0.查询正在以下代码中使用:

app.get('/get-data', function(req, res) {
console.log('Sending performance');
var stmnt = // query comes here
if(!exists) {
    res.send({});
} else {
    var db = new sqlite3.Database(db_path);
    db.all(stmnt, function(err, rows) {
        if(err) {
            res.send({});
        }
        if(rows) {
            var docs = {};
            var by_id = _.groupBy(rows, function(row) {
               return row.ID;
            });
            for(var key in by_id) {
                if(by_isp.hasOwnProperty(key)) {
                    docs[key] = _.map(by_id[key], 'VALUE');
                }
            }
            res.send(docs);
        } else {
            res.send({});
        }
    });
    db.close();
}});

0 个答案:

没有答案