创建node.js应用程序以使用API​​并将响应打印到HTML上

时间:2013-03-01 10:56:07

标签: html api node.js

首先,我对node.js和Web服务非常陌生。

我正在开展一些工作,要求我从openweather.org API获取温度并在HTTP中提供结果。

api是

http://api.openweathermap.org/data/2.1/find/name?q=London

我想用以下格式将城市名称,温度和度数保存在HTML中:

<!DOCTYPE html>
<html>
<head>
    <title>Something</title>
</head>
<body>

<h1>Current Weather</h1>

<hr/>
<strong id="city">{{city}}</strong>
<span id="temperature">{{temperature}}</span>
<span id="unit">{{unit}}</span>
<hr/>
<small>last update: <span id="lastupdate">{{datetime}}</span></small>

</body>
</html>

我该怎么做?任何帮助。

2 个答案:

答案 0 :(得分:2)

步骤1:创建一个简单的节点应用程序来执行api请求并将输出返回到控制台。使用request让您的生活轻松

第2步:使用像underscore或其他人那样的模板引擎将api输出与上面的html模板合并。 例如:

var apiResult = JSON.parse(the_result_of_api_call);
var template = '<strong id="city"><%= list[0].name %></strong>';
var output = _.template(template)(apiResult);

步骤3:创建一个node express website以组合上述内容并执行response.send(mergedoutput)。

答案 1 :(得分:2)

访问http.request了解详情。

        var options = {
          host: url,
          port: 80,
          path: '/resource?id=foo&bar=baz',
          method: 'POST'
        };

        http.request(options, function(res) {
          console.log('STATUS: ' + res.statusCode);
          console.log('HEADERS: ' + JSON.stringify(res.headers));
          res.setEncoding('utf8');
          res.on('data', function (chunk) {
            console.log('BODY: ' + chunk);
          });
        }).end();

上面的代码块将帮助您从其他网站检索数据。

如果您想以问题中提到的(类似)方式呈现数据,则需要查看backbone.jsunderscore.js

您可以看到一个具有相似内容的示例:backbone.js with node.js