Node.js 将API数据请求到Express view中
我是新手。我正试图将通过API调用(当用户请求zoopla页面时)收到的数据发送到Node.js 将API数据请求到Express view中,node.js,express,ejs,Node.js,Express,Ejs,我是新手。我正试图将通过API调用(当用户请求zoopla页面时)收到的数据发送到index.ejs视图中。我试图通过在res.render中传递graph\u url来传递它 graph\u url记录正确,因此API调用将返回,但我的终端中出现以下错误: ReferenceError: graph_url is not defined 以下是我对该页面的index.js请求: app.get('/zoopla', function(req, res){ request(zoopla,
index.ejs
视图中。我试图通过在res.render
中传递graph\u url
来传递它
graph\u url
记录正确,因此API调用将返回,但我的终端中出现以下错误:
ReferenceError: graph_url is not defined
以下是我对该页面的index.js
请求:
app.get('/zoopla', function(req, res){
request(zoopla, function(err, res, data){
var data = JSON.parse(data);
var graph_url = data.area_values_url
console.log(graph_url);
});
res.render('index', { title : "zoopla", graph : graph_url});
});
未定义
graph\u url
,因为它不在本地范围内,而且您正在尝试在上一个异步request()
调用完成之前呈现页面
尝试:
app.get('/zoopla', function(req, res){
request(zoopla, function(err, res, data){
if (err) {
/* handle errors */
}
var data = JSON.parse(data);
var graph_url = data.area_values_url
console.log(graph_url);
res.render('index', { title : "zoopla", graph : graph_url});
});
});
Javascript是异步的。您需要将渲染函数放入请求回调中。