私はNodeJSを初めて使用しています。私はrestifyを使用して最初のAPIを構築しています。 応答データをキャッシュするためのベストプラクティスを知りたい - 各API呼び出しには独自のキャッシュ時間が必要です。NodeJS APIキャッシングのベストプラクティス
私はres.cache()を見てきましたが、それはユーザーの要求ごとであり、グローバルアプリケーションキャッシュではないようです。
私はrestify-cacheを見ましたが、ドキュメンテーションは使用方法を明確に教えていませんでした。
私のアプリケーションは、このように動作します:
server.jsコード:
var restify = require('restify');
var mysqlDB = require('./config/connection');
// REST server declaration and configuration
var server = restify.createServer({
name: 'test-api',
version: '0.0.1'
});
server.pre(restify.pre.sanitizePath());
server.use(restify.queryParser());
server.use(restify.acceptParser(server.acceptable));
server.use(restify.queryParser());
server.use(restify.bodyParser());
server.listen(9007, function() {
console.log('%s listening at %', server.name, server.url);
mysqlDB.handleDisconnect();
console.log(new Date() +': Started Cricket API on port 9007');
});
var routes = require('./routes')(server);
routes.jsコード:
module.exports = function(app) {
app.get('/', function(req, res, next) {
return res.send("You have reached the test API");
});
var fixtures = require('./controllers/fixtures');
app.get('/getfixtures', fixtures.getFixtures); // Get All Fixtures
};
fixtures.jsコードスニペット:
this.getFixtures = function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
console.log("Get All Fixtures");
var mysql = mysqlDB.getConnection();
var query = "SELECT * FROM fixtures WHERE fixture_date >= CURDATE() ORDER BY fixture_date, fixture_time";
mysql.query(query,function(err,rows){
if(err) {
var status = mysqlDB.getErrorStatus(err.code);
return res.status(status.code).send("Error : "+ status.Message);
} else {
var data = [];
for (i in rows){
var item = rows[i];
var output = util.formatDate(item.fixture_date);
item.fixture_date = output;
data.push(item);
};
return res.send(data);
}
});
};
誰かが感謝しますか?私は正しい方向に?キャッシュ部分をどこに追加するのか分かりません。ライブラリファイルから