Expressjs使用REST Api的请求主体

时间:2015-09-15 14:12:45

标签: javascript json node.js rest express

我正在尝试使用我们的webclient的nodejs / expressjs,并且无法将数据传递给我的.ejs模板:

我有一个REST API调用我们的应用服务器,它返回一个json元素。我希望我可以直接在路由器中调用API并将其作为变量传递给我的模板,但我似乎无法提取json元素。我知道我可以直接在模板中使用ajax调用,但我想尝试坚持MVC设计模式。

将json元素返回到我传递的局部变量似乎不会出于某种原因。

我一整天都在寻找答案,但是在所有的教程中,我看到的只是每个人都记录了他们的结果。这一切都很好,但用它做点什么会很好。

`

    var url = "http://application.server"

    /* GET home page. */
    router.get('/', function(req, res, next) {

  request(url, function (error, response, body) {
    console.log(body); //returns Json element, how can I extract this??
  });

  res.render('index', {
    //data: body <---- I want to pass the JSON element to my template here
  });

    });

`

谢谢!!!!

1 个答案:

答案 0 :(得分:0)

@Phil感谢您完全合乎逻辑的答案:)

我现在在回调中渲染我的模板,并使用bodyJSON.parse(body)解析为JSON对象。稍后我将不得不进行更多的API调用并传递它们,但是对于我们的原型,这是有效的。

var url = "http://application.server"

/* GET home page. */
router.get('/', function(req, res, next) {
  request(url, function (error, response, body) {
    res.render('index', {data:JSON.parse(body)});
  });
});