REST.gets中的REST调用表示路径目录中的js文件

时间:2016-02-17 18:01:14

标签: javascript node.js handlebars.js

我正在尝试调用对API的REST调用并在视图上显示返回的数据,但我当前的代码似乎没有工作。我对node.js很新,所以我真的很感激一些帮助。

这是index.js的样子:

var router = require('express').Router();

function GetCompanyInformation() {
    var request = require('request');
    request('http://table.finance.yahoo.com/table.csv?s=orcl&a=0&b1&c=2010&d=0&e=1&f=2011&g=d&y=0&z=orcl', function (error, response, data) {
        if (!error && response.statusCode == 200) {
            return data;
        }
        return 'An error has occurred.'
    })
}

/* GET home page. */
router.get('/', function(req, res, next) {
    res.render('index', {
        title: 'Express',
        data : GetCompanyInformation()
    });
});

module.exports = router;

这是我的观点index.hbs(把手):

<h1>{{ title }}</h1>
<h1>{{ data }}</h1>

标题回来了。我只是不确定如何传递来自其余调用的数据。或者,如果我甚至正确地做到了。我的主要目标是进行休息调用并将返回的数据放在一个数组中,然后将数组传递给视图。

我只是举了一个雅虎金融休息电话。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

欢迎来到Nodejs,这里的一切都是异步的,这意味着你必须等待你的功能完成才能做某事,通常我们使用回调样式(例如其他选项是promises),代码示例:

function GetCompanyInformation(callback) {
    var request = require('request');
    request('http://table.finance.yahoo.com/table.csv?s=orcl&a=0&b1&c=2010&d=0&e=1&f=2011&g=d&y=0&z=orcl', function (error, response, data) {
        if (!error && response.statusCode == 200) {
            return callback(null,data);
        }
        return callback('An error has occurred.',null);
    })
}

/* GET home page. */
router.get('/', function(req, res, next) {
    GetCompanyInformation(function(err,data){
        //if(err) Manage error ; console.log(err)
        //else
        console.log(data)
        res.render('index', {
          title: 'Express',
          data : data
        });
    });
});