問題タブ [node-github]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - リンクヘッダーを利用する API からすべてのページを取得するための正しいアプローチ (JavaScript/NodeJS を使用)
フォロワーなどの特定のユーザーに関する統計を取得するために、 Github APIのラッパーであるnode-githubという NodeJS モジュールを使用しています。
どうやら、Github は呼び出し結果を (per_page
パラメーターを介して)最大 100 に制限し、Link ヘッダーを利用して結果の「次のページ」が存在することを知らせます。
私が使用しているモジュールには、Link ヘッダーを処理するための簡単な方法がいくつか用意されているため、解析する必要はありません。基本的に、github.hasNextPage(res)
またはgithub.getNextPage(res)
(元の呼び出しres
から受け取った応答はどこにありますか)を呼び出すことができますgithub.user.getFollowers()
私が探しているのは、関数がすべてのページで構成されるすべての結果を返すようにするための正しいアプローチ/パラダイムです。再帰関数に少し手を出しましたが、うまくいきましたが、もっと良いアプローチがあるかもしれないと感じずにはいられません。
この回答は、標準が普及した場合、Github だけでなく、将来のすべての Link ヘッダー呼び出しを処理するための優れたアプローチとして役立つ可能性があります。
ありがとう!
node.js - node-github - ユーザーの公開情報を取得する
このAPIを使用して、githubでの小さな調査のためにユーザーデータを取得しようとしています: https://developer.github.com/v3/users/#get-a-single-user
crul経由でユーザー データをフェッチしようとすると、このコマンドを実行するだけでデータを取得できます (認証なし)。
しかし、node-githubを使用することに縛られている場合:
認証に問題があります。
最初に認証を試みます:
しかし、その後、必要なユーザーのデータではなく、ユーザーデータを取得しています。
ここに何が欠けているのか分かりますか? なぜ crul が機能し、github.user.get が機能しないのですか? nodejsを介してそれを行うより良い方法はありますか?
ありがとう!
javascript - promise nodejs で戻り値を処理する
私はNodeJsでこの関数を構築しました。
};
モジュール「Nodegit」を使用してこの関数を構築しました。プロミスをコールバック ハンドラとして使用しています。
関数では、ユーザーがリポジトリで行ったすべてのコミットを取得し、呼び出し元の Web サービスへの応答として送信しています。
少なくとも 1 つのコミットがある場合、関数は正常に機能します (つまり、repo.getMasterCommit はコミット履歴を返します)。しかし、コミットがゼロの新しいリポジトリに repoPath を指定すると、その関数から何も返されないため、呼び出し元の Web サービスに応答を送信できません。この状況に対処する方法を教えてください!!!!!!!!
base64 - GitHub API を使用してファイルをダウンロードする際の base64 のデコード
GitHub API を使用して、GitHub からファイルをダウンロードしています。認証に成功し、github からの応答を取得でき、ファイルの内容を表す base64 でエンコードされた文字列を確認できました。
残念ながら、base64 文字列をデコードするときに異常なエラー (文字列の長さが 4 の倍数ではない) が発生します。
HTTP リクエストを以下に示します。
(部分的な) 応答を以下に示します。
私が遭遇している問題は、文字列の長さが 15263 バイトであり、文字列のデコード中にエラーが発生することです (文字列の長さが 4 の倍数ではありません)。node.js と 'base64-js' npm モジュールを使用して文字列をデコードしています。デコードを実行するコードを以下に示します。
デコードすると例外が発生します。
GitHub API が正しいデータを送信していると思うので、それは問題ではないと思います。
デコードを不適切に実行していますか、それとも見落としている別の問題がありますか?
どんな助けでも大歓迎です。