Я хочу получить данные в 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 из