Я разрабатываю API с ExpressJS, где используется Redis, для хранения некоторой «начальной» информации.У меня есть настроенные пулы в redispools.js
, как показано ниже.
var redisPool = require('redis-connection-pool');
//
var pool0 = redisPool('A', { database: 0 });
var pool1 = redisPool('B', { database: 1 });
var pool2 = redisPool('C', { database: 2 });
//
pool0.on('error', function(err) {console.log(err)});
pool1.on('error', function(err) {console.log(err)});
pool2.on('error', function(err) {console.log(err)});
//
var pools = { A: pool0, B: pool1, C: pool2 };
module.exports = pools;
В lookup.js
У меня есть следующее:
var express = require('express');
var router = express.Router();
var redisPools = require('../app/redispools');
// Process payload
router.post('/process/*', function (req, res, next) {
var redisConfigConn = redisPools.A
redisConfigConn.set('key', req.body, function (err) {
if (err) {
console.log(err);
} else {
console.log('Redis inserted.')
}
});
var resp = {
'IP-Address': req.ip,
'Path': req.path
}
res.status(200);
res.send(resp);
});
module.exports = router;
После запуска с pm2
у меня естьэто в логах:
TypeError: Cannot read property 'name' of undefined
at RedisClient.internal_send_command (/home/ubuntu/code/src/server/node_modules/redis/index.js:914:128)
at RedisClient.set (/home/ubuntu/code/src/server/node_modules/redis/lib/commands.js:58:25)
at pool.acquire.then (/home/ubuntu/code/src/server/node_modules/redis-connection-pool/src/redis-connection-pool.js:523:23)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
Чего не хватает?