在 express 路由器中使用 redis 客户端

Using redis client in express router

我想在某些端点使用 redis 客户端。

我的app.js是这样设置的

//app.js

const redis = require('redis');
const client = redis.createClient(process.env.REDIS_PORT, 'redis');
const api = require('./routes/api');
const app = express();
const passport = require('passport');
app.use('/api', api(passport));

//api.js

module.exports = function (passport) {
    router.get("/reset", reset.resetPassword)
    return router
};

//reset.js

module.exports = (函数() {

var resetPassword = function(req, res) {
    //do something with redis client here
}

return {
    resetPassword: resetPassword
}
})()

如何将redis 客户端传递给resetPassword 函数? 我尝试将它传递给 api.js 然后 reset.js 但 resetPassword 函数似乎不喜欢除 req、res 和 next...

之外的参数

您可以将 Redis 客户端导出为模块并在您的路由处理程序中使用它。

// redis-client.js
const redis = require('redis');
const client = redis.createClient(process.env.REDIS_PORT, 'redis');
module.exports = client;

// reset.js
const redisClient = require('./redis-client');
var resetPassword = function(req, res) {
 // do something with redis client here
}