由于我在单独的脚本中设置了应用程序路由,因此我需要一种方法在所有这些脚本中共享相同的Redis客户端。这是正确的做法吗?
app.js
const express = require('express');
const app = express();
var redis = require("redis"),
client = redis.createClient();
app.use((req, res, next) => {
req.redis = client;
next();
});
// load routes
app.listen(3000, () => console.log('Example app listening on port 3000!'));
...其他js文件
app.get('/xyz', (req, res) => {
var redis = red.redis;
// use redis
});
答案 0 :(得分:0)
您不必将客户端实例传递给每个请求,无论是否需要。
我使用了一个非常标准的控制器,您可以根据需要使用(),如下所示。
var redis = require('redis')
.createClient(...);
redis.on('connect', function() {
console.log('Redis server online.');
});
module.exports = redis;
然后,只要你想访问它
var redis = require('./app/controllers/redis');
// redis => Redis client instance