-----注:ダークホースプログラマNodejsビデオチュートリアルから主に記録された知識のブログのこのシリーズ、ブロガー単に手動でコードの再利用既存の知識やレコード
表します
一部の地域でHTTPネイティブパフォーマンスは、我々の開発ニーズに対処するのに十分ではないので、我々は我々の開発効率を加速するためのフレームワークを使用する必要があります。我々のコードより均一な高さとなるようなフレームワークの目的は、効率を改善することです
1.スタート
1.1インストール:
NPM --save Expressをインストールします
VARエクスプレス=必要とする( '発現' ) VaRのアプリ= エクスプレス() app.get( '/'、関数(REQ、RES){ // 推荐使用明示的方法 res.send( "Hello World"の) }) アプリ。 (聞く 3000、関数(){ にconsole.log( "アプリが実行されている表現を..." ) })
1.3基本的なルーティング
ルータ
-
リクエストメソッド
-
リクエストパス
-
要求ハンドラ
// の場合GETメソッド要求/機能に対応する処理行う場合 app.get( '/'、関数(REQ、RES)を{ res.send( 'のHello World!' ) })
役職:
// 場合にPOSTメソッド要求/機能に対応する処理行う場合 app.post( '/'、関数(REQ、RES){ res.send( '取得要求POSTのAを' ) })
// /公共资源 app.use(express.static( '国民)) // /ファイル资源 app.use(express.static( 'ファイル' )) // /公共/ XXX app.use(' /国民、express.static( '国民)) // /静的/ XXX app.use( '/静的'、express.static('国民)) app.use(「/static',express.static(path.join (__dirname、 'パブリック')))
2. Expressはで使用するように構成されたart-template
テンプレートエンジン
NPM --save当該分野インストールテンプレート
NPMインストール --saveエクスプレス・アート・テンプレートを
構成:
// デフォルトのアート app.engine(「アート」、必要(「テンプレート・エクスプレス・アート」)) // 変更されたHTML app.engine(「HTML」、必要(「テンプレート・エクスプレス・アート」))
使用します。
// の設定変更のhtmlを使用して ( '/'、app.getを関数は(REQは、RES){ // index.htmlを見つけるために、Expressのデフォルトのビューのディレクトリにプロジェクトに行きます ( 'index.htmlを' res.renderを、{ タイトル: 'Hello Worldの' }) })
// 最初のパラメータビューは間違えないでください (「ビュー」、ディレクトリパスを)app.set
3. ExpressのフォームGETリクエストパラメータを取得し、
内蔵のAPIエクスプレス、あなたは直接経由することができますreq.query
req.query
注:ブラウザのアドレス入力では、デフォルトでは、GET要求であります
4. POSTリクエストボディExpressのデータを取得します。
いいえ内蔵されていないインAPI我々は、サードパーティ製のパッケージを使用する必要があるエクスプレス、フォームのPOSTリクエストのボディを取得します:body-parser
インストール:
NPM --saveボディパーサーをインストール
構成:
VARエクスプレス=( 'Expressの必要) // プライマーパケット0のを VaRのインクルードが必要bodyParserを=( 'bodyParser' ) VARのApp = エクスプレス() // 設定1.パーサー本体 // ただ、この設定を追加し、その後、REQリクエストは、オブジェクトのプロパティのうちの複数になります体は // 直接POSTリクエストボディreq.bodyフォームからデータを得ることができる // 解析ファイルアプリケーション/ x-www-form-urlencodedで app.use(bodyParser.urlencoded({拡張:falseに})) // 解析ファイルアプリケーション/ JSONの app.use(bodyParser.json())
使用します。
app.use(関数(REQ、RES){ res.setHeader( 'Content-Typeの'、 'text / plainで' ) res.write( 'あなたの投稿:N- \' ) // フォームのPOST req.bodyによって取得することができますデータ要求本体 res.end(JSON.stringify(req.body、NULL、2 )) })
5.自動的にサービスnodemonを再起動するためのツールを使用して、
ここでは、名前のサードパーティ製のツールを使用することができます。nodemon
私たちは問題を解決するために、頻繁にコードを修正し、サーバーを再起動します
nodemon
サードパーティのコマンドラインツールのNode.jsの開発に基づいており、我々は、スタンドアロンインストールを使用する必要があります。
#持つことができます任意のディレクトリで次のコマンドを実行し 、すべてのことが必要とされている# - 株式会社フリーは任意のディレクトリで実行することができるパッケージをインストールするために参加 NPMインストール --global nodemonを
インストール後、使用します。
#ノードを使用する前に
ノードapp.js
#は今nodemon使用
nodemon app.js
6.Express - CRUD(ルーティング)
6.1モジュール化
どのようにモジュール部門:
-
単一のモジュールへの責任
-
ビュー
-
角度
-
反応します
-
また、3つのフロントエンドのフレームワークを学ぶには非常に助長しています
6.2開始
-
初期化
-
テンプレートの処理
6.3ルーティング設計
6.4抽出ルーティングモジュール
router.js:
/ * モジュールのルーティングRouter.js 機能を: ルーティングを処理し 、経路設定要求方法に応じて+特定の要求ハンドラ要求 * / // 単一の役割にモジュールをせずに書いていない // オブジェクトが分割モジュールプロジェクトのコードの保守性を向上させることです抵抗は、開発効率の向上 VARのエクスプレス=(「エクスプレス」が必要) // 1.ルーティングコンテナ作成 するvarルータ= express.Router() // 2ルートが容器に取り付けられているルータルート router.get(」/学生' 関数(REQ、RES){ }) router.get( '/学生/新新'、関数(REQ、RES){ res.render( 'new.html' ) }) router.post( ' /学生/新しい新」、関数(REQ、RES){ }) router.get( '/学生/編集'、関数(REQ、RES){ }) router.post( '/学生/編集'、関数(REQ、RES){ }) router.get(「/学生/削除」、関数(REQ、RES){ }) // 3把ルータ导出 module.exportsは=ルータ
app.js:
VaRのルータは=( "./ルータ"が必要) // ルーティングマウント app.use(ルータ)
/ * Student.js データファイルモジュール動作 業務:運用データファイル、データ処理だけで、ビジネスを気にしない * / / * すべての生徒のリストを取得し 、配列を返す * / exports.find = 機能(){ } / * 学生のセーブ追加 * / exports.save = 関数(){ } / * 更新学生 * / exports.update = 関数(){ } / * 学生を削除 * / 輸出。削除 = 関数(){ }
-
プロセステンプレート
-
コンフィギュレーションを開き静的なリソース
-
設定テンプレートエンジン
-
シンプルなルーティング:/学生は、まだページをレンダリング
-
ルーティング設計
-
抽出ルーティングモジュール
-
次の新規事業として運営は、ファイルデータに対処する必要があるので、我々はstudent.jsをパッケージ化する必要があります
-
最初に書き込まstudent.jsファイル構造
-
クエリAPIは、すべての生徒のリストを見つけます
-
findById
-
保存する
-
updateById
-
deleteById
-
-
特定の機能を実現します
-
ルーティングによる要求の受領
-
データ要求を受信(GET、POST)
-
req.query
-
req.body
-
-
データ処理APIを使用してデータ操作
-
クライアントは、操作の結果に応答を送信します
-
-
ビジネス機能の順序
-
リスト
-
加えます
-
編集します
-
削除
-
-
ES6二つの重要なAPI:見つけ、findIndex