【问题标题】:Why combining Node Express and Redis can't set a simple Key-Value pair?为什么结合 Node Express 和 Redis 不能设置简单的 Key-Value 对?
【发布时间】:2021-09-30 15:59:53
【问题描述】:

基本上,下面应该执行一个简单的 Redis-cli> SET KEY VALUE 的 put 服务无法工作。 get 操作运行良好。 单独使用 redis 模块并调用 set 函数也可以。 但是当从 app.put() 调用时,KEY/VALUE 对没有注册。

什么鬼???

// express setup
const REDIS_REST_PORT = 3000;
const express = require('express');
const router = express.Router();
const app = express();
const bodyParser = require('body-parser');
app.use(bodyParser.json());

// redis setup
const REDIS_CONNECTION_STRING = "redis://127.0.0.1:6379";
const RedisCli = require('redis').createClient(REDIS_CONNECTION_STRING);
RedisCli.on('connect', function() {
    console.log('Connected to REDIS');
});
RedisCli.on('error', function(err) {
    console.log('/!\ REDIS ERROR: ' + err);
});

// GET .../get/KEY (works well !!)
app.get('/get/:key', function(req, res) {
    RedisCli.get( req.params.key, function (err, result) {
        if (err) {
            res.send(err,500);
        } else {
            res.send(result);
        }    
    });
});

// PUT .../set/KEY + body (can't work KEY/VALUE never registered ??)
app.put('/set/:key', function(req, res) {
    var value = "'" + JSON.stringify(req.body) + "'";
    console.log("SET " + req.params.key + " " + value);
    RedisCli.set( req.params.key, value,
        function (err, result) { 
            if (err) {
                res.send(err,500);
            } else {
                res.send(result);
            }    
    });
});

// Start REST server
app.listen(REDIS_REST_PORT, () =>
    console.log('Listening on port '+ REDIS_REST_PORT + '...')); 

【问题讨论】:

  • 所以,经过多次试验和错误,它突然可以正常运行。一些提示: - 我已经从 JSON 字符串值中删除了简单的引号 - 我已经完成了一个新的测试,更改了键和一个内部没有空格的 JSON 值......而且,而且,突然它曾经工作过.

标签: javascript node.js express redis node-redis


【解决方案1】:

最终它曾经起作用 - 不明白如何以及为什么 - 请参阅我的评论。

【讨论】:

    猜你喜欢
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 2012-04-18
    • 2011-05-16
    • 1970-01-01
    • 2011-10-25
    相关资源
    最近更新 更多