Py学习  »  Redis

在Express应用程序中连接到Redis会导致类型错误

cogitoergosum • 6 年前 • 1065 次点击  

我正在用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)

缺少什么?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39029