Вы не совсем понимаете, как работают обещания, .then()
является асинхронным, поэтому ваш код сразу переходит на res.render()
, а obj
равен undefined
--- вам нужно изменить его на следующее, такres.render
не вызывается до тех пор, пока ответ не будет получен путем помещения его в .then()
:
var axios = require('axios')
exports.DisplayData = function(req , res){
var url = 'https://jsonplaceholder.typicode.com/todos/1'
axios.get(url).then(response => {
let obj = response.id;
res.render('index.pug',{obj})
}
}
. Кроме того, вы можете альтернативно использовать async/await
вместо .then()
, например так:
exports.DisplayData = async function(req , res){
try{
var url = 'https://jsonplaceholder.typicode.com/todos/1'
let response = await axios.get(url);
let obj = response.id;
res.render('index.pug',{obj});
}catch(e){
res.render('error.pug');
}
}