我应该在帖子前面说我是初学者,这是我第一次在一个真实的项目中使用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>
我的问题是:
如何将JSON读入我的应用程序以及此代码的位置(index.js,app.js,testview.jade等......?)
如何将我构建的网址从代码所在的任何地方导出到我的.jade视图?
答案 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调用的结果中形成它之后)。