Почему массив дублирует себя в экспрессе? - PullRequest
0 голосов
/ 01 ноября 2019

Я даже не знаю с чего начать ....

Вот мой код ...

    const request = require("request");
const bodyParser = require('body-parser');

let posts = [];

function sort(postsCollection, type, direction){
    let target = postsCollection[type];
    let swapp = false,
        n = postsCollection.length - 1,
        x = postsCollection;
    do {
        swapp = false;
        for(let i = 0; i < n; i++){
            if(x[i][type] < x[i+1][type]){
                let temp = x[i];
                x[i+1] = temp;
                swapp = true;
            }
        }
        n--;
    } while (swapp);
    return x;
}

function postExists(posts, post){
    if(posts.indexOf(post) == -1){
        return false;
    }else{
        return true;
    }
}

module.exports = {
    buildPostsCollection(options, url){
        //posts = [];
        if(!options || !url){
            return "Error: No options or URL given";
        }

        options.tags.forEach((tag) => {
           const newUrl = `${url}?tag=${tag}`;

           request.get(newUrl, (err, res, body) => {
               let target = JSON.parse(body)['posts'];

               Object.keys(target).forEach((key) => {
                   if(postExists(posts, target[key]) == false){
                       posts.push(target[key]);
                   }
                   /*
                   if(!(posts.includes(target[key]))){
                       posts.push(target[key]);
                   }
                   */
               })
           });
        });
        return posts;
    },
    orderPostsCollection(postsCollection, sortType, direction){
        if(!sortType && !direction){
            return postsCollection;
        }

        if(sortType) {
            return sort(postsCollection, sortType, direction);
        }else if(direction){
            return sort(postsCollection, false, direction);
        }
    }
};

Я не знаю, это я или что .. Но когда я вызываю этот код через сервер API, я просто заставляю его дублировать себя снова и снова .... IE ... Массив posts не исчезает, он просто добавляет к себе каждый раз, когда страница обновляется ..

Также я должен добавить, что у меня были проблемы, даже при сохранении массива posts в функциях ... Я не могу array.push к нему, если это не глобальная переменная. И по какой-то причине мои функции проверки дубликатов не работают на нем ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...