node.js - Node和Express发送json

标签 node.js api express

如何将请求中的 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/

相关文章:

node.js - Express 服务器为尚未定义的路由返回 200

javascript - 来自不同数组的不同值并在表中并排附加在一起

javascript - MYSQL查询传递变量结果0

javascript - 用 javascript 编写一个类

java - Evernote Java API java.lang.OutOfMemoryError : Java heap space when calling listNotebooks

linux - 如何在openwrt上自动启动nodejs应用程序 - Arduino Yun -

javascript - Node.js Express POST 请求未获取参数

javascript - NodeJS/重新验证 : How can I recieve file upload in API?

api - Quickbooks 中发生事件后触发 API 调用?

ios - 在 api 类之外显示与 alamofire 相关的警报