2017-07-31 5 views
0

ノードJSを使用してAPIデータを取得しようとしています。私はこのノードパッケージを使用しています。ノードJSを使用したAPIデータの取得

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

そのパッケージのドキュメントは十分に簡単です。

私はnpm.runkit.comでテストしました。

しかし、アプリケーションにパッケージをインストールすると、コンソールに出力が表示されません。

私はJetBrains WebStormを使用していますが、これは私が取った手順です。

  1. 新しいExpressのアプリケーションを作成します
  2. NPMは、表現・ジェネレータを-g --save --save cryptocompare
  3. NPMは
をインストール
  • NPMをインストールしたノードは、フェッチ
  • NPMをインストールするインストール

    次に/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に移動しようとしましたが、何もしませんでした。

    私はここで間違っていますか?

  • +0

    2番目の例で角括弧を削除してみてください。ドキュメンテーションはそれらを持っていません。 – spicypumpkin

    +0

    角括弧は何ですか? 'USD'の周りのもの? – Halnex

    +0

    mmhm「通貨ペアを渡す」の例とは異なります – spicypumpkin

    答えて

    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; 
    
    をES5するため、私はちょうどES6からそのシンテックスを変更し、この

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

    ような何かを行うことができますindex.jsでそれを使用したい場合は

    これはあなたにとって役に立ちます

    +0

    これは 'title 'のために' [object] 'を返す – Halnex

    +1

    タイトル:prices.USD これを使うと動作します。 –

    +0

    すばらしい。私はMEANスタックを初めて使っています。私は本当にあなたの忍耐を感謝します。 – Halnex

    0

    あなたが何も取得していない理由はわかりません。私は同じ手順で試して、結果を得ました。

    私はちょうど異なったことをしました。abc.jsという名前のファイルにコード全体を貼り付けました。

    、その後、私は

    abc.jsこの

    ノードのように、コマンドラインでそれを実行し、私はこのような結果を得た

    {USD:2797.06}

    をすることができます私にとって素晴らしい作品なので、もう一度試してみてください。あなたが何か問題に直面したら私に教えてください。続行

    ...だからあなたは、あなたが

    +0

    はい、私はこれをテストしただけで動作します。しかし、代わりに 'index.js'ルートにデータを渡して、最終的にはコンソールの代わりにページにデータを出力することができます。 – Halnex

    +0

    @Halnexああ、待って、私はIDEのコンソールを見ていると思っていた。ルータのデータを取り出しています。つまり、サーバが起動したときにすぐにこのことが起こっています。フェッチコールをルータ内部に移動し、フェッチコールバック内でレンダリングすると、ブラウザのコンソールにデータが表示されます。 – spicypumpkin

    +0

    @spicypumpkin私はルータ内でそれを移動して 'index.js'でレンダリングしようとしていましたが、IDEは構文エラーを投げつけ続けます。フェッチスニペットを 'title 'がある配列の中に移動することはできません。 – Halnex

    関連する問題