【发布时间】: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