NodeSchoolに入学しよう!

JSONデータの送信

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
JSON.parseメソッドを使用したJSON文字列のパースなど、アプリケーションでJSONを使用する方法について学びます。
講師:
05:24

字幕

このレッスンでは Express.jsアプリケーションで JSONを送信する方法について説明します それではまず ワークショッパーを起動しましょう expressworks "Enter" 今回は最後の「JSON ME」という 問題を解きます "Enter" を押します 「問題」 /booksへのGETリクエストに応答する Express.jsサーバーを作成してください レスポンスは コマンドラインの 2番目のパラメータで与えられた JSONファイルのパスを読みこんで 一度パースして それをレスポンスのjsonメソッドで 送信するものとします また アプリのポート番号は 1番目のコマンドライン引数で 与えられるものとします ということでJSONの送信です JSONの送信には レスポンスオブジェクトに対して "send" 例えば "send"で このような形で オブジェクトを送信することもできます またこれと同じ効果なのですが jsonというメソッドを使ってもいいです こちらの方がJSONを送信している ということが明示化されるので えー 読みやすいかもしれません それでは ここで一旦動画を 止めて 皆さんで 問題を解いてみてください さて 問題は解けましたでしょうか それでは 私の方で 正解のプログラムを 書いてみたいと思います program.jsというファイルに コードを書いていきます まずはexpress.jsのロードですね require 'express' そして今回ローカルファイルをロード しますのでfsモジュールもロードします require 'fs' そしてアプリケーションインスタンスを 作成しましょう 今回はGETメソッドですので getのパスはbooksですね そして リクエストハンドラ―を設定します そして リクエストハンドラ―の中では fsのreadファイルを使って ファイルを読み込みます 読み込む対象のパスは コマンドラインパラメータで 渡されます argvの数字の3ですね そして今回は 文字列として読み込みたいので エンコーディングパラメータを 渡しておきます 'utf8' そして3番目のパラメータとして ファイルの読み込み完了後のハンドラ―ですね これは1番目のパラメータが エラーオブジェクト 2番目が読みこんだデータ 文字列ですね今回の場合は そして データの読み込みが完了したら レスポンスオブジェクトで それを送信してやります 送信する前に一度JSONを パースしろということだったので JSONの パースメソッドを 使用します そしてそれに strを渡してやります これで一度文字列がパースされて オブジェクトになった上で 再度JSONに渡されて クライアント側に送信されます 一点 重要なことなのですが ここでリードファイルという 非同期のI/Oを使用しています Nodeには同期I/Oの関数も 用意されていますので この中で同期I/Oをすることも 可能ではあるのですが そのようなことは 基本的にやってはいけません なぜかというと同期I/Oをしてしまうと その関数がデータを読み込み終わるまで 戻って来なくなってしまうので リクエストが立て続けに 来ているような状況ですと そのI/Oが終わるまで 次のリクエストの 処理が滞ってしまいます 非同期I/Oを使っておけば その場で 処理が止まるようなことはないので 複数のリクエストが同時に来ていても 処理をさばくことができます つまりI/Oでリクエストが詰まってしまう ようなことが起きづらくなります それでリクエストの記述は終わったので あとはサーバーを起動します processのargvの2 これで サーバー起動できますね では 試してみましょう expressworks verify の program.js テストが通りました こちらの回答例を見ると きちんとI/Oで ファイルの読み込みでエラーが 発生した場合には 500のエラーレスポンスを返すと いったことやJSONのパースに失敗した場合 つまり読み込もうとしたJSONデータが 不正だったような場合には このようにきちんと エラーの ハンドリングをして エラーのレスポンスを返す といったことをやっています これは非常にいいことで 実際のコードでは このように エラーハンドリングを きちんとする 必要があります このレッスンでは Express.jsで JSONのデータを送信する方法 について学びました

NodeSchoolに入学しよう!

NodeSchoolワークショッパーとは、オープンソースで開発されているNode.jsやJava Scriptについて学ぶためのクイズ形式のアプリケーションです。このコースでは、learnyounodeとexpressworksという2つのワークショッパーを通じてNode.jsとExpress.jsの基本的な使い方を学びます。

3時間13分 (24 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
Node.js Node.js 0.10.24
価格: 3,990
発売日:2015年04月07日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。