Как заставить тело разных HTML страниц выглядеть по-разному в ответах разных серверов? - PullRequest
0 голосов
/ 08 февраля 2020

Я использую токены Spotify Web API для манипулирования данными разных пользователей, поэтому первое, что я использую, это то, что отображается на Spotify для веб-сайта разработчика . Затем токены отправляются клиенту Python, который обрабатывает эти данные и отправляет обратно на сервер через сокет разных цветов, связанных с разными токенами. Моя проблема заключается в следующем:

В настоящее время я могу запускать только разные страницы на http://localhost:8888/. Я могу получить разные токены со всех страниц, которые входят в Spotify, и затем обратный вызов перенаправляет пользователя на страницу с некоторыми данными из его профиля. Теперь я хочу, чтобы сервер отправлял разные цвета на каждую страницу, различая их по токену, который получил сервер. Вот я и подумал примерно так:

JavaScript код в HTML Страница:

<script>
    timer = setInterval(function() {
        $.ajax({
            url: '/obtain_color',
            data: {
                'access_token': access_token
            }
        }).done(function(colore) {
            console.log("access: " + access_token);
            console.log(String(colore));
            document.body.style.backgroundColor = "rgb" + String(colore);
        })
    }, 5*1000);
</script>

А на Node.Js сервере:

var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
app.use(express.static(__dirname + '/public'))
   .use(cors())
   .use(cookieParser());

var tokens_array = [];
var color_array = [];    // THIS VALUES ARE COLLECTED IN OTHER PARTS OF THE CODE
                         // SO THEY GOT VALUES INSIDE

app.get('/obtain_color', function(req,res) {

    io.on('connection', function(socket){
        socket.on('risposta client', function (msg) {
            color_array.push(msg);
        });
    });

    for (var i = 0; i <tokens_array.length; i++) {
        for (var j = 0; i < color_array.length; i++) {
            if (String(tokens_array[i]) == String(Object.keys(color_array[j]))){
                console.log(String(color_array[j][tokens_array[i]]));
                console.log(tokens_array[i]);
                res.send(String(color_array[j][tokens_array[i]]));
            }
        }
    }
});

Что Вместо этого я получаю, что каждая страница окрашена только первым цветом первого полученного токена. Как будто сервер не может определить другую страницу, связанную с ним, и отправить их обратно нужного цвета.

Надеюсь, я хорошо объяснил, если нет, я здесь, чтобы уточнить лучше:)

...