簡體   English   中英

緩存node.js json服務器數據

[英]node.js json-server data are cached

我正在使用以下json服務器

var server = jsonServer.create()
var router = jsonServer.router('./books/db.json')
server.use(jsonServer.defaults())
server.use(router)
server.listen(3000)

我每5秒更改一次db.json

setInterval(function() {
    var o = JSON.parse(fs.readFileSync('./books/db.json', 'utf8'));
    for (var i = 0; i < o.books.length; i++) {
        // do some changes
    }
    fs.writeFile("./books/db.json", JSON.stringify(o));
}, 5000);

該文件正在更改,但是在執行請求時,它仍然具有舊數據

json-server內部使用lowdb提供靜態文件 lowdb不會在更改時重新加載文件,因為它不監視文件中的更改。 lowdb數據庫位於router.db ,因此可以在更改文件后使用router.db.read('./books/db.json')再次讀取文件。 有關API,請參見lowdb文檔

另外,請閱讀json-server文檔中與生成隨機數據有關的部分。 此解決方案避免了持續的磁盤訪問,但是服務器退出后,數據將丟失。 如果這不是問題,那將是我的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM