我正在使用Express,Postgresql和Redis在Node中構建一個API,並且當談到節點時,我是一個完整的初學者。我試圖設置redis緩存來自postgres的查詢響應,但我無法弄清楚如何在不重複每個文件中的實現的情況下執行此操作。如何使用redis緩存節點中的查詢數據
Here's我的一些app.js的
// connect to the postgresql database
var database = require("./config/database")(app);
var pg = require("pg");
var conString = app.get('db uri');
var client = new pg.Client(conString); client.connect();
// an example of how my routes look like
app.get('/v1/users/:uid', users.getUser(client));
Here's users.js
exports.getUser = function(client) {
return function(req, res) {
var userId = req.params.uid;
var query = client.query("SELECT * FROM users WHERE users.id = ?",[userId]);
query.on("row", function (row, result) {
result.addRow(row);
});
query.on("end", function (result) {
res.json(result.rows);
});
};
};
伊夫搜索所有網站上,包括計算器和最接近的解決方案從來就可以發現此頁面上找到using redis for cahing in node 他的解決辦法是這樣的:
var handler = function(response)
{
response = JSON.stringify(response);
client.setex('some-key-value', 21600, response);
res.end(response);
};
client.get('some-key-value', function (err, result) {
if (err || !result)
execute_function(zipcode, handler);
else
res.end(result);
});
我的工作方式是將所有內容都包裝在client.get if/else語句中,但它看起來很醜陋,而且由於我有很多路由,最終我會重複很多代碼,以及如何獲得此解決方案的任何幫助與我的代碼將非常感激。提前致謝!
我們即將做同樣的事情,期待MySQL,Hapi和Redis。你有沒有設法找到任何文檔或例子? –
@AdrianLynch沒有抱歉,我從來沒有找到工作,也找不到任何可以幫助我的例子。 – Patteh