简体   繁体   中英

Node.js, wordpress,redis

I need to get data from Redis in node server and send it to a Wordpress layout. I tried the following, but data doesn't seem to get sent.

var express = require('express');
var app = express();
var redis = require('redis');
var client = redis.createClient(); //creates a new client

client.on('connect', function () {
    console.log('connected');
});

data = [];

client.set(['first', 'Oleh']);
client.set(['second', 'Ivan']);
client.set(['thirt', 'Andriy']);
client.set(['fourth', 'Olena']);
client.set(['fifth', 'Kristy']);
client.set(['sixth', 'Irina']);

client.get('first', function (err, reply) {
    console.log(reply);
    data.push(reply);
});

client.get('second', function (err, reply) {
    console.log(reply);
    data.push(reply);
});

client.get('thirt', function (err, reply) {
    console.log(reply);
    data.push(reply);
});

client.get('fourth', function (err, reply) {
    console.log(reply);
    data.push(reply);
});

client.get('fifth', function (err, reply) {
    console.log(reply);
    data.push(reply);
});

client.get('sixth', function (err, reply) {
    console.log(reply);
    data.push(reply)
});

app.get('http://localhost/wordpress/', function (req, res) {

    res.type('application/json'); // set content-type
    res.send(this.data); // send text response
    console.log(this.data);
});

app.listen(process.env.PORT || 4730);

It seems you have the scope incorrect. this.data refers to the function (req, res) {} and not your global scope.

Try doing res.json(data) and remove the res.type() , as res.json already takes care of that for you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM