我正在用ExpressJS开发一个API,其中使用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)
缺少什么?