Как получить данные пользователя из экспресс-маршрута через запрос получения Ajax? - PullRequest
1 голос
/ 22 мая 2019

Я хочу получить данные в js-файл на стороне клиента для динамического построения диаграмм в зависимости от пользователя, вошедшего в систему.

У меня есть маршрут GET, который отвечает пользовательскими данными в объекте JSON, когда пользователь вошел в систему. Я могу использовать этот объект JSON в моих файлах EJS, чтобы он отправлялся по маршруту. Но я хочу использовать те же данные в клиентском файле JavaScript, поэтому у меня есть метод Ajax, который использует тот же маршрут. Он подключается к маршруту, но я не импортирую объект json.

routes.js 

    app.get('/profile', isLoggedIn, function (req, res) {
        let respondent_id = req.user.user_respondent_id;
        getData(respondent_id, function (score) {
            //the user object can be rendered in the ejs files 
            res.status(200).render('profile.ejs',{user: req.user, score})
        });
    });

Я хочу использовать тот же объект json в js-файле на стороне клиента

public/javascripts/graph.js

var getData = function() {
    $.ajax({
        url:'/profile',

            console.log(data.score.cat1Total.score); //undefined on console.
            //data undefined 
            myChart.chartArray.push(data.score.cat1Total.score);

            // These are the variables I want to take from JSON object from /profile - they are working, as on EJS file they display. 
            // [score.cat1Total.score, score.cat2Total.score,
            //     score.cat3Total.score, score.cat4Total.score, 
            //     score.cat5Total.score, score.cat6Total.score,
            //     score.cat7Total.score, score.cat8Total.score]

            // re-render the chart
            myChart.update();
        }
    });
};

// get user data
getData();

когда я также пытаюсь распечатать только данные, он выводит файл profile.ejs из

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