如何将请求中的json(posiciones)传递给res.render以将其发送到索引(我的视图),一切都可以运行到控制台,但是当它到达res.render时标记我的错误:位置不是它被定义
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var cons = require('consolidate');
var dust = require('dustjs-helpers');
var app = express();
const request = require('request');
var port = process.env.PORT || 3001;
app.engine('dust', cons.dust);
app.set('view engine', 'dust');
app.set('views', __dirname + '/views');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false}));
const options = {
url: 'http://xx.xx.xx.xx:xxxx/api/positions',
method: 'GET',
headers: {
'Authorization': 'Basic xxxxxxxxxxxxxxxxxxxxxxx',
'Accept': 'application/json',
'Content-Type': 'application/json',
}
};
app.get("/index", function(req, res) {
request(options, function(err, response, body) {
var posiciones = JSON.parse(body);
console.log(posiciones);
res.json(posiciones);
});
res.render('index', {devices: posiciones});
});
app.listen(port, function(){
console.log('servidor iniciado en http://localhost:' + port);
});
答案 0 :(得分:3)
这是因为您的请求调用是异步。在请求回调执行的时候,您的代码已经尝试渲染index
。这就是它给出错误的原因。
在回调中呈现index
页面 -
app.get("/index", function(req, res) {
request(options, function(err, response, body) {
var posiciones = JSON.parse(body);
console.log(posiciones);
res.render('index', {devices: posiciones});
});
});