使用 nodejs 使用 REST 向 html 发送响应
Posted
技术标签:
【中文标题】使用 nodejs 使用 REST 向 html 发送响应【英文标题】:Consuming a REST using nodejs sending response to html 【发布时间】:2018-08-11 10:05:24 【问题描述】:我是 Nodejs 的初学者,我有一个辅助项目来检查我的端点的状态。
我最初尝试使用 XMLHttp 执行此操作,但由于 CORS,我的请求被阻止。现在我想尝试使用 node 使用这些 API 点,如果它返回 200,则将行绘制为绿色,如果它向下将行绘制为红色。
我的 server.js 有以下代码
var express = require('express');
var app = express();
var request = require('request');
var port = process.env.PORT || 3000;
app.set('port', (port));
app.use(express.static(__dirname + '/'));
app.get('/', function(request, response)
response.render('/');
);
app.listen(app.get('port'), function()
console.log('Node app is running on port', app.get('port'));
);
var services = [
url: 'MyGetEndpoint'
,
url: 'MyGetEndpoint'
];
function checkService( url )
request(url, function (error, response, body)
if (!error && response.statusCode == 200)
console.log(response)
else
console.log(error);
);
function loadDoc()
var url;
for(var i in services)
url = services[i].url;
checkService( url );
loadDoc();
在终端上,我可以看到我的两个端点被发回了,所以在我的前端,如果一个端点是状态200,我想给背景上色。
<div id="result" class="media text-muted pt-3">
如何从我的服务器获取 URL?我需要使用 ajax 执行另一个 javascript 来调用我的 loadDoc 还是可以直接发送到浏览器?
在此先感谢,非常感谢任何帮助。我阅读了与我的类似的以下问题,但我无法完全理解它们的含义。 Here
【问题讨论】:
@EndaMolloy 您好,我遇到了与 OP 类似的问题,您能否详细说明如何执行此操作? @user2737948 你有使用过handlebars 或ejs 等模板语言的经验吗?再次查看问题,我看到“/”路由用于渲染,因此如果您决定使用 ajax 调用,则需要第二条路由。 @EndaMolloy 不,我没有任何实际在我的代码中进行模板化的经验我没有渲染任何东西我只有一个获取信息的获取。我所做的是获取该信息,我想用该信息填充一个数组,然后将其发送给用户,以便他可以在 html 中显示它。你能帮我一把吗? @user2737948 使用您的代码发布一个新问题 @EndaMolloy 这里是:link 【参考方案1】:请参阅 expressjs 文档中的 route parameters。使用 url 作为路由参数。如何返回服务状态取决于您,您可以使用express-flash 将数据刷新到模板。您可以将其用作客户端浏览器可以为curled 的端点。
【讨论】:
以上是关于使用 nodejs 使用 REST 向 html 发送响应的主要内容,如果未能解决你的问题,请参考以下文章
nodejs使用Node.js实现REST Client调用REST API
Magento 使用 OAuth 通过 REST API 到 NodeJS
使用 Express 和 NodeJS 构建 REST API 的最佳实践