質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Bitcoin

Bitcoinは、インターネット上で流通している電子マネーです。P2Pネットワークを通じた安価な決済コストが実現できる一方、取引時の危険性や闇市場・資金洗浄など不正取引の温床といった法的問題も抱えています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

2回答

566閲覧

下記のスクリプトでどのようにsetIntervalを使用して10秒ごとに情報を取得したらよいでしょうか?

dame-dame

総合スコア78

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Bitcoin

Bitcoinは、インターネット上で流通している電子マネーです。P2Pネットワークを通じた安価な決済コストが実現できる一方、取引時の危険性や闇市場・資金洗浄など不正取引の温床といった法的問題も抱えています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2017/12/11 06:09

編集2017/12/12 00:12

nodejsでbitflyerのAPIをたたいて、下記のurl1とurl2にアクセスしてbitflyerの状態と
プロダクトコードを30秒ごとにダウンロードしたいと思っています。

SetIntervalを使用するのはわかるのですが、そこからがよくわからずどのように書いたらいいのかわかりません。どなたかご教示いただけませんでしょうか?

下記のようにsetIntervalを1行付け加えましたがエラーが出ます

var request = require('request'); var path1 = '/v1/getboardstate'; var query = ''; var headers = { 'Content-Type':'application/json' } var url1 = 'https://api.bitflyer.jp' + path1 + query; request(url1, function (err, response, payload) { console.log(payload); }); setInterval(request,3000);

エラー内容は

{"health":"NORMAL","state":"RUNNING"} /home/ec2-user/node_modules/request/index.js:44 throw new Error('undefined is not a valid uri or options object.') ^ Error: undefined is not a valid uri or options object. at Timeout.request [as _onTimeout] (/home/ec2-user/node_modules/request/index.js:44:11) at ontimeout (timers.js:386:11) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5)

となります。
文法的には間違っていないと思いますがいかがでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karamarimo

2017/12/11 07:11

setInterval について調べられましたか?具体的にどこが分からないか追記していただけますか?
guest

回答2

0

ベストアンサー

js

1setInterval(func, interval)

intervalミリ秒ごとに関数funcfunc()という感じで実行されます。

setInterval(request,3000)ではrequest()が実行されますが引数にurlを指定していないのでそのようなエラーが出たということです。

このようにすれば、期待通り3秒ごとにurl1にリクエストを送ることになります。

js

1setInterval(function () { 2 request(url1, function (err, response, payload) { 3 console.log(payload); 4 }); 5}, 3000);

投稿2017/12/12 04:52

karamarimo

総合スコア2551

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dame-dame

2017/12/12 06:48

おお、動きました!!!!ありがとうございます。これをもっとに価格差などのアップデートを継続的に見ることができます。今後ともよろしくお願いいたします
guest

0

プロダクトコードを10秒ごとにダウンロードしたい

これはサーバー側の処理を想定していますか?
であればcronなりタスクスケジューラで1分毎に回して
その中で10秒毎にうまくデータをとればいいのでは?

クライアント側での処理であれば単純なjavascriptの
setIntervalで処理すればいいでしょう

投稿2017/12/11 06:33

yambejp

総合スコア114784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dame-dame

2017/12/11 06:39

最終行にsetInterval(request,4000); を追加するだけで でよろしいでしょうか?下記のように実行しても 4秒後に下記のようにエラーが出てきてしまいます node gethealth.jsを打鍵 {"health":"NORMAL","state":"RUNNING"}   /home/ec2-user/node_modules/request/index.js:44 throw new Error('undefined is not a valid uri or options object.') ^ Error: undefined is not a valid uri or options object. at Timeout.request [as _onTimeout] (/home/ec2-user/node_modules/request/index.js:44:11) at ontimeout (timers.js:386:11) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5)
yambejp

2017/12/11 06:52 編集

クライアント側の処理ということでよろしいのですか? そうであれば別途scriptタグにjavascriptを記載し バックグラウンドでajaxを利用してサーバーに取りにいってください
yambejp

2017/12/11 06:52 編集

だぶった
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問