如何从Node.js / Express中的URL获取JSON对象

时间:2016-06-01 20:34:48

标签: javascript json node.js express pug

我应该在帖子前面说我是初学者,这是我第一次在一个真实的项目中使用Node.js和Express。

我有一个简单的Node.js / Express项目,我想从URL读取一个JSON对象。之后,我打算使用iframe构建另一个显示外部网站html的网址。

我读到了'请求'模块在线,知道我需要做这些事情:

var express = require('express');
var router = express.Router();
var request = require('request');

// Urls for App Center REST functions
var url = 'https://someserver.com/appserver/portal/api/1.0/results/recent';

/* GET list of recent reports */
router.get('/testapi', function(req, res, next) {
  res.render('testapi', { title: 'List Recent Reports' });
});

/* TEST: function to GET report list */
router.get('/recentreports', function(req, res){
  request({
    url: url,
    json: true
  }, function (error, response, body) {
      if (!error && response.statusCode === 200) {
        console.log(body) // Print the json response
    }
  })
});

我试图定义一个在/recentreports视图中调用的函数testapi.jade,但是当我加载页面时,控制台中没有打印任何内容,我怀疑我正在做一些可怕的错误。< / p>

我的问题是:

  1. 如何将JSON读入我的应用程序以及此代码的位置(index.js,app.js,testview.jade等......?)

  2. 如何将我构建的网址从代码所在的任何地方导出到我的.jade视图?

1 个答案:

答案 0 :(得分:1)

没有任何内容记录到浏览器控制台,因为您的服务器未发送任何响应。响应仅记录到服务器的控制台。

您需要重构res.send路由的代码才能发送数据。您可以使用简单的... function (error, response, body) { if (!error && response.statusCode === 200) { res.send(body) // Send the response to the client } } ... 电话:

testapi.jade

'/recentreports'将通过对testapi.jade路由的AJAX呼叫接收此响应。 AJAX调用可以在testapi.jade文件源的Javascript文件中定义。

构建的URL不需要导出,因为它存在于同一个MATCH (m:Member)-[r:ACTIVITY{issue_d:"16-Jan"}]->(l:Loan) MATCH (m)-[:ACTIVITY]->(p:Payments) MATCH (m)-[:HISTORY]->(c:CreditHistory) WHERE NOT p.total_pymnt=0 RETURN l.funded_amnt, p.total_pymnt, (l.funded_amnt)-(p.total_pymnt) AS amountowed, r.issue_d AS dateissued, l.installment AS monthlypayment, l.int_rate AS interestrate, c.dti AS debt ORDER BY (l.funded_amnt)-(p.total_pymnt) DESC LIMIT 50000; 文件中(在您从AJAX调用的结果中形成它之后)。