我有一個NODE.JS快遞服務器,它將JSON塊分解成更小的部分,並通過移動設備和我創建的各種其他應用程序的URL路由請求。NODE.JS緩存JSON
我剛剛從測試數據移動到實時數據,但我發現NODE.JS沒有使用最新版本的JSON,而是緩存並重用了服務器運行時就地存在的JSON。
這裏(的一部分)的代碼
var express = require('express'),
http = require('http');
forever = require('forever');
var ppm = require('./data/ppm.json');
var stations= require('./data/stations.json');
var fgwstations= require('./data/fgwstations.json');
var app = express()
.use(express.bodyParser())
.use(express.static('public'));
app.all('/', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
app.get('/ppm/all', function (req, res) {
res.json(ppm);
});
app.get('/*', function (req, res) {
res.json(404, {status: 'datafeed not found please refer to documentation'});
});
http.createServer(app).listen(3000, function() {
console.log("Data Server ready at http://localhost:3000");
});
有可能的輸入錯誤代碼正如我剛纔撕塊出來的正確artile很長作爲其做了很多。我把這個服務器permenantly使用FOREVER功能,因此它沒有外殼命令是在運行了開放
現在我懷疑我可以做某種類型fs.filewatch功能,將每一個JSON文件被更新時重新啓動服務器,但是如果重新啓動服務器,這似乎有點特別,當這些數據每2-3分鐘更新一次,未來更快。在此重啓過程中,只需要一個人做請求或應用程序請求數據就會導致問題。
是否有一種'重新讀取'分配給var ppm的JSON文件(其他人是Fairlry靜態的)或重新啓動服務器的唯一方法?
關於如何閱讀該文件並做到這一點的任何好主意,將不勝感激,因爲我相信有人會有一個更有效的方式來做到這一點。
目前開發服務器是開源(和非常WIP),並隨時看看它做什麼它加載
http://54.194.148.89:3000
當您需要JSON文件時,當您更改該文件時它不會自動更新,您必須重新獲取該文件。 – adeneo