このセクションでは、ユーザーが写真をアップロードし、その写真をブラウザーに表示することを実装します。
ここで使用する外部モジュールは、Felix Geisendörfer によって開発されたノード強力なモジュールです。これは、アップロードされたファイル データを解析するための優れた抽象化を実現します。
この外部モジュールをインストールするには、cmd で次のコマンドを実行する必要があります:
npm install 恐るべき
同様の情報が出力されれば、インストールは成功です:
npm info ビルド成功: formidable@1.0.14
インストールが成功したら、リクエストを使用して導入できます:
var formidable = require(“formidable”);
このモジュールがここで行うことは、HTTP POST リクエストを通じて送信されたフォームを変換し、Node.js で解析できるようにすることです。必要なのは、送信されたフォームの抽象表現である新しい IncomingForm を作成することだけです。その後、それを使用してリクエスト オブジェクトを解析し、フォーム内の必要なデータ フィールドを取得できます。
この記事の事例の画像ファイルは /tmp フォルダーに保存されています。
まず問題を解決しましょう: ローカル ハード ドライブに保存されたファイルをブラウザで表示するにはどうすればよいですか?
サーバーにファイルを読み取るには fs モジュールを使用します。
/showURL のリクエスト ハンドラーを追加しましょう。これは、ファイル /tmp/test.png の内容をブラウザーに表示するために直接ハードコーディングされています。もちろん、最初に画像をこの場所に保存する必要があります。
私たちのチームは requestHandlers.js にいくつかの変更を加えます:
var querystring = require("querystring"),
fs = require("fs");
function start(response, postData) {
console.log("リクエストハンドラー「start」が呼び出されました。");
var body = ''
'<頭>'
'
'content="text/html; charset=UTF-8" />'
''
'<ボディ>'
'<フォームアクション="/アップロード"メソッド="ポスト">'
''
''
'フォーム>'
'