我有一些服务器端代码设置为向外部网站发出请求并返回一个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代码后再玩了一下
答案 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>