gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 00:00:05 24 4
gpt4 key购买 nike

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

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

我在网上阅读了“请求”模块,知道我需要按照以下思路做一些事情:

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
}
})
});

我试图定义一个在 testapi.jade View 中调用的函数 /recentreports,但是当我加载页面时,控制台中没有打印任何内容,我怀疑我做错了什么。

我的问题是:

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

  2. 如何将我从代码所在的位置构建的 URL 导出到我的 .jade View ?

最佳答案

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

您需要重构 'recentreports' 路由的代码以发送数据。您可以使用简单的 res.send 调用:

...
function (error, response, body) {
if (!error && response.statusCode === 200) {
res.send(body) // Send the response to the client
}
}
...

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

构造的 URL 不需要导出,因为它存在于同一个 testapi.jade 文件中(在您根据 AJAX 调用的结果形成它之后)。

关于javascript - 如何从 Node.js/Express 中的 URL 获取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37578293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com