如何将请求中的 json (posiciones) 传递给 res.render 以将其发送到索引(我的 View ),一切正常,直到控制台,但是当它到达 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);
});
最佳答案
这是因为您的请求调用是异步。在执行您的请求回调之前,您的代码已经尝试渲染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});
});
});
关于node.js - Node和Express发送json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47403623/