2017-07-14 10 views
1

私はnodejを学んでいます。私は、Coin-Tickerというnpmを使ってcryptocurrenciesの価格を得るためのサーバーを作っています。私はAngularアプリケーションで取得しているデータを使用したいが、htmlにデータを表示していない。nodejsとcointickerを使ってjsonにデータを保存する

server.js

const express = require('express'); 
const path = require('path'); 
const http = require('http'); 
const bodyParser = require('body-parser'); 
const coinTicker = require('coin-ticker'); 

const api = require('./server/routes/api'); 

const app = express(); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 

app.use(express.static(path.join(__dirname, 'dist'))); 

app.use('/api', api); 

app.get('*', (req, res) => { 
    res.sendFile(path.join(__dirname, 'dist/index.html')); 
}); 


const port = process.env.PORT || '3000'; 
app.set('port', port); 

const server = http.createServer(app); 

server.listen(port,() => console.log(`API running on localhost:${port}`)); 

API.JS

const express = require('express'); 
const router = express.Router(); 
const coinTicker = require('coin-ticker'); 

/* GET api listing. */ 
router.get('/', (req, res) => { 
    res.send('api works'); 
}); 

router.get((req, res) => { 
    coinTicker('bitfinex', 'BTC_USD') 
    .then(posts => { 
     res.status(200).json(posts.data); 
    }) 
    .catch(error => { 
     res.status(500).send(error) 
    }); 
}); 

module.exports = router; 
あなたの助けを

ありがとう:これは私のコードです!

+0

コンソールにはどんなエラーがありますか?端末からのログはありますか? index.htmlには何が入っていますか?また、 'router.get((req、res)=> {'は間違っているようです...私はあなたが最初の引数としてパスを必要としていると思っています) – lxe

+0

あなたの返信のためにありがとう@lxe。 この例に従おうとしました:https://scotch.io/tutorials/mean-app-with-angular-2-and-the-angular-cli –

+0

クライアントとサーバーは独立したアプリケーションです。 –

答えて

1

コインティッカーがその時にjsonを返すので、あなたがしているときにres.status(200).json(posts.data);が返されます。それをres.status(200).json(posts)と置き換えると正常に動作するはずです

router.get((req, res) => { この前にパスが必要です。私はこのコードを router.get('/convert', (req, res) => {で試してみましたが、それ以上の変更を加えれば

+0

あなたの助けていただきありがとうございますが、それは動作しません.HTMLとコンソールは情報を表示していません。これは私が試したチュートリアルです。次のようにしてください:scotch.io/tutorials/mean-app-with-angular-2-and-the-angular-cli 私がそのステップの手順に従っていれば動作しますが、コインテクタを使用しようとしたときには動作しません。 –

+0

ok明確にする接頭辞に '/ change'を追加すると、それを呼び出すときにurl "/ api/convert"で呼び出す必要があります。あなたのサーバがターミナルで動作しているかどうかを調べるには、 'curl" localhost:3000/api/convert "と書いてください(3000の代わりに正しいポートを使用するようにしてください)。そして正しい応答を得るか、 localhost:3000/api/convert " –

関連する問題