2017-11-21 23 views
0

要求に含まれるjson(posiciones)をres.renderに渡してインデックス(私のビュー)に送信するにはどうすればいいですか?コンソールまではすべて動作しますが、到着すると位置あなたの要求コール非同期あるので、それはあるノードとエクスプレスがjsonを送信

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); 
}); 

答えて

2

が定義されていない:res.renderは、それは私のエラーをマークします。 要求コールバックが実行されるまで、あなたのコードは既にレンダリングを試みましたindex。それがエラーを出す理由です。 D:、

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}); 
    }); 
}); 
+0

感謝、感謝 -

は、コールバックの内側にあなたのindexページをレンダリング –

関連する問題