无法使用Node从Redis获取信息

时间:2020-02-05 22:42:46

标签: node.js redis

因此,我有一个使用tunnel-ssh和redis npm软件包的脚本。问题是我认为我已正确完成所有操作,但仍然无法显示某些数据。它说通过隧道和redis完成连接。

const tunnel = require('tunnel-ssh');
const fs = require('fs');
const redis = require('redis');


let config = {
        username: username,
        dstPort: 6379,
        localPort: 6379,
        dstHost: host.myjob.com,
        host: host.myjob.com',
        privateKey: require('fs').readFileSync('private_key.pem')
//      passpharse: 'secret',
//      keepAlive: true
};

var server = tunnel(config, function(error,server){
    console.log("SSH connection successfully done.");
    var client = redis.createClient();
    //console.log(client);
    client.select(2, function() {
        client.on('connect', function() {
            console.log('connected');
        });
        client.hgetall('product', function(err, reply) {
            console.log(reply);
        });
    });
});

server.on('error', function(err){
    console.error('Something bad happened:', err);
});

我收到的唯一控制台消息是“ SSH连接成功完成”,我实际上不知道为什么。顺便说一句,这是我与Redis合作的第一个方法,所以我真的不明白。

请帮助!

1 个答案:

答案 0 :(得分:0)

请使用async-redis模块 并运行此代码,它对我有用

const tunnel = require('tunnel-ssh');
const fs = require('fs');
const redis = require("async-redis");
var client = redis.createClient({
    host: "127.0.0.1", //host name
    db: 2, //redis db 
  });

let config = {
        username: username,
        dstPort: 6379,
        localPort: 6379,
        dstHost: host.myjob.com,
        host: host.myjob.com',
        privateKey: require('fs').readFileSync('private_key.pem')
//      passpharse: 'secret',
//      keepAlive: true
};

var server = tunnel(config,async function(error,server){
    console.log("SSH connection successfully done.");
    let reply = await client.hgetall("tgju_open_price_13990509")
    console.log(reply)
});

server.on('error', function(err){
    console.error('Something bad happened:', err);
});