Express.js从外部API渲染数据

时间:2018-03-11 02:10:21

标签: javascript node.js express

我有一个从外部API获取数据的函数:

app.get("/getdata", (req, res) => {
  request.get({
    url: 'http://externalurl',
    json: true
  })
  .pipe(res);
});

它只是在浏览器中显示收到的JSON对象。问题是,我怎样才能在模板中呈现这些数据,就像通常使用像res.render("template", {data:data})这样的快速方法来完成,这样我就可以对其进行格式化?

1 个答案:

答案 0 :(得分:2)

假设您的$(function() { $("#question").change(function(e) { e.preventDefault(); var x = document.getElementById("question").value; if (x == "default") { $("#demo").html(""); } else { $("#demo").load("c7vt.php?finished"); } }); }); 变量来自request npm package,您可以使用回调函数来接收响应数据:

request

或者,如果您对使用calllbacks感到不舒服,可以将app.get("/getdata", (req, res, next) => { request.get("http://externalurl", (err, response, body) => { if (err) { return next(err); } res.render("template", {data: JSON.parse(body)}); }); }); 调用包装在一个承诺中或使用现成的包装器(请参阅软件包的自述文件以获取建议)。