使用Node JS获取API数据

时间:2017-07-31 15:34:01

标签: javascript node.js

我正在尝试使用Node JS获取API数据。我正在使用此节点包来执行此操作。

https://www.npmjs.com/package/cryptocompare

该软件包的文档很简单。

global.fetch = require('node-fetch')
const cc = require('cryptocompare')

cc.price('BTC', ['USD', 'EUR'])
.then(prices => {
  console.log(prices)
})
.catch(console.error)

我已经使用npm.runkit.com对其进行了测试,但它确实有效。

但是,当我将软件包安装到我的应用程序中时,我在控制台中看不到任何输出。

我正在使用JetBrains WebStorm,这些是我采取的步骤。

  1. 创建新的Express App
  2. npm install -g express-generator
  3. npm install --save node-fetch
  4. npm install --save cryptocompare
  5. npm install
  6. 然后在/routes/index.js内添加了以下内容

    var express = require('express');
    var router = express.Router();
    global.fetch = require('node-fetch');
    const cc = require('cryptocompare');
    
    /* GET home page. */
    
    cc.price('BTC', ['USD'])
        .then(prices => {
            console.log(prices)
    }).catch(console.error);
    
    router.get('/', function(req, res, next) {
        res.render('index', {
          title: 'Example'
        });
    });
    
    module.exports = router;
    

    但是在控制台日志中没有显示任何内容。我尝试将global.fetch移动到根目录中的app.js,但这也没有做任何事情。

    我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

    var express = require('express');
    var router = express.Router();
    global.fetch = require('node-fetch');
    const cc = require('cryptocompare');

    /* GET home page. */


    router.get('/', function(req, res, next) {
cc.price('BTC', ['USD'])
        .then(prices => {
    res.render('index', {
          title: prices
        });
    }).catch(console.error);

    });

    module.exports = router;

这对你有用

答案 1 :(得分:1)

不确定为什么你没有得到任何东西。我尝试了相同的步骤并得到了结果。

我只是做了一件不同的事情,我将整个代码粘贴到一个名为 abc.js 的文件中。

然后我在命令行中运行它,就像这样

节点abc.js

我得到了这个结果

  

{USD:2797.06}

请你再试一次,因为它对我来说很棒。如果您遇到任何问题,请告诉我。

继续...

因此,如果您想在index.js中使用它,那么您可以执行类似这样的操作

cc.price('BTC', ['USD'])
    .then(function(prices){
        console.log(prices)
}).catch(function(error){
console.log(error);
});

我刚将其syntex从es6更改为es5