現状
該当のソースコード
以下のソースコードでコンソールにはレートが正しく表示されます。
top.js
js
1var express = require('express'); 2var router = express.Router(); 3 4let https = require('https'); 5 6const XRP = "https://coincheck.com/api/rate/xrp_jpy"; 7 8https.get(XRP, (res) => { 9 var body = ''; 10 res.setEncoding('utf8'); 11 res.on('data', (chunk) => { 12 body += chunk; 13 }); 14 res.on('end', (chunk) => { 15 // body の値を json としてパースしている 16 res = JSON.parse(body); 17 console.log(`現在のレートは${res.rate}円/XRP`); 18 }) 19 }).on('error', (e) => { 20 console.log(e.message); 21}); 22 23router.get('/', (req, res, next) => { 24 res.render('top', { 25 title: 'TOP', 26 rate: `現在のレートは${res.rate}円/XRP` 27 }); 28}); 29 30module.exports = router;
top.pug
pug
1extends layout 2 3block content 4 head 5 meta(charset="UTF-8") 6 title #{ title } 7 body 8 .container 9 .starter-template 10 p #{rate}
試したこと
rateの中身を${res}に変更すると、[object Object]と表示されます。
js
1router.get('/', (req, res, next) => { 2 res.render('top', { 3 title: 'TOP', 4 rate: `現在のレートは${res}円/XRP` 5 }); 6});
よろしくおねがいします。
ご回答を頂いた部分を修正しました
js
1var express = require('express'); 2var router = express.Router(); 3 4let https = require('https'); 5 6const XRP = "https://coincheck.com/api/rate/xrp_jpy"; 7var state = {}; 8 9https.get(XRP, (res) => { 10 var body = ''; 11 res.setEncoding('utf8'); 12 res.on('data', (chunk) => { 13 body += chunk; 14 }); 15 res.on('end', (chunk) => { 16 // state.rate = JSON.stringify(body); 17 state.rate = JSON.parse(body); 18 console.log(`${state.rate}`); 19 }) 20 }).on('error', (e) => { 21 console.log(e.message); 22}); 23 24router.get('/', (req, res, next) => { 25 res.render('top', { 26 title: 'TOP', 27 rate: `現在のレートは${state.rate}円/XRP` 28 }); 29}); 30 31module.exports = router;
上記の通り、編集しました。
しかし結果は
コンソール→現在のレートは[object Object]円/XRP
ブラウザ→現在のレートは[object Object]円/XRP
でした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/23 13:24
2018/10/24 09:55