如何获得自定义api的响应到jj文件在Nodejs中

我有一个使用Nodejs的问题我想要做的是如下。 我有一个API,我发送请求。 当我从API获得响应时,我想将其发送到我的index.jade文件。 我已经得到了我的API的响应,但只有在一个控制台。 不在我的HTML文件(index.jade)。

代码如下:

app.js

app.get('/', function(req, res) { var postData = '{'+ ' "limit": "10",'+ ' "page": 1,'+ ' "filters": {'+ ' "genre": [],'+ ' "region": "",'+ '"prices": 2,'+ ' "distance": 31,'+ ' "longitude": "4.646219",'+ ' "latitude": "52.387388",'+ ' "eves": 1,'+ '"from_date": "17-12-2015",'+ '"end_date": "18-12-2014"'+ '}'+ '}'; var options = { hostname: 'API url', path: 'api path', method: 'POST', headers: { 'Content-Type': 'application/json', 'Content-Length': postData.length, } }; var req = http.request(options, (res) => { console.log(`STATUS: ${res.statusCode}`); console.log(`HEADERS: ${JSON.stringify(res.headers)}`); res.setEncoding('utf8'); res.on('data', (chunks) => { console.log(`BODY: ${chunks}`); var response = JSON.parse(chunks) res.render('index',{ value: response }); }); res.on('end', () => { console.log('No more data in response.') }) }); req.on('error', (e) => { console.log(`problem with request: ${e.message}`); }); res.on('data', function(chunk){ body += chunk; }); res.on('end', function(){ var response = JSON.parse(body) console.log(response) console.log("Successful") }); 

index.jade

  p #{value} 

注意:我对node js很新。

如果我找不到,请尝试更改您的代码如下。 我发现在不同的callback函数中有相同的reqresvariables,这会引起混淆。

所以我想也许相同的variables名称会导致你的问题,只是改变其中一个resp来区分它们,也许它可以帮助你。

 var req = http.request(options, (resp) => { var buffer = ""; console.log(`STATUS: ${resp.statusCode}`); console.log(`HEADERS: ${JSON.stringify(resp.headers)}`); resp.setEncoding('utf8'); resp.on('data', (chunks) => { console.log(`BODY: ${chunks}`); buffer += chunks; // accumulate data here }); resp.on('end', () => { console.log('No more data in response.'); res.render('index',{ // send the data received to client value: buffer // maybe need to JSON.parse(buffer)? }); }) });