AJAX请求从node.js / express服务器读取JSON对象

时间:2016-06-02 17:40:39

标签: javascript ajax node.js express pug

我有一些服务器端代码设置为向外部网站发出请求并返回一个JSON对象,然后传递给我的node.js / express应用程序的客户端。然后我打算在客户端对JSON执行一些额外的处理。

在我的index.js文件中,我定义了以下代码来呈现我的视图并对外部网站进行RESTful调用:

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

// Urls for external server REST API function calls
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) {
        res.send(body); // Send the response to the client
    } else {
        console.log(error);
    }
  })
});


module.exports = router;

在我的jade视图中,我设置了一个按钮来调用/ recentreports函数并发出请求(可能是AJAX请求?)以从服务器接收JSON对象。

我的问题是:我如何阅读服务器到客户端应用程序的响应,以便我可以处理JSON?

我的玉视图如下:

extends layout

head

block content
  h1= title
  p Welcome to #{title}
  script.
    // not sure what goes here
    $(function()){
      $('#getRecentReports').on('', function() {
          $.get('recentreports', function(body) {
            $('#jsonbody').html(body)
          })
        })
    }

  button(
    onclick = "getRecentReports()" 
  )

编辑:更新了.jade代码后再玩了一下

1 个答案:

答案 0 :(得分:0)

我建议的建议:

script.
  $(function() {
    $('#getRecentReports').on('click', function() {
      $.get('recentreports', function(body) {
        $('#jsonbody').html(body)
      });
    });
  });

button(
  id = "getRecentReports"
)

呈现:

<script>
  $(function() {
    $('#getRecentReports').on('click', function() {
      $.get('recentreports', function(body) {
        $('#jsonbody').html(body)
      });
    });
  });

</script>
<button id="getRecentReports"></button>

或者:

script.
  function getRecentReports() {
    $.get('recentreports', function(body) {
      $('#jsonbody').html(body)
    });
  }

button(
  onclick = "getRecentReports()"
)

呈现:

<script>
  function getRecentReports() {
    $.get('recentreports', function(body) {
      $('#jsonbody').html(body)
    });
  }

</script>
<button onclick="getRecentReports()"></button>