Nodejs道(3) - エクスプレスのNodejsフレームワーク

-----注:ダークホースプログラマNodejsビデオチュートリアルから主に記録された知識のブログのこのシリーズ、ブロガー単に手動でコードの再利用既存の知識やレコード

表します

一部の地域でHTTPネイティブパフォーマンスは、我々の開発ニーズに対処するのに十分ではないので、我々は我々の開発効率を加速するためのフレームワークを使用する必要があります。我々のコードより均一な高さとなるようなフレームワークの目的は、効率を改善することです

ノードでは、多くのWeb開発フレームワークがあり、我々は学ぶためにここにあるexpressメインを

参考サイト: http://expressjs.com/

1.スタート

1.1インストール:
NPM --save Expressをインストールします
1.2ハローワールド
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を' 
})
1.4静的サービス
// /公共资源 
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の' 
    })
})

注意:デフォルトの変更したい場合はviews、ストレージディレクトリをレンダリングするビューを、次のことができます。

// 最初のパラメータビューは間違えないでください 
(「ビュー」、ディレクトリパスを)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 ))
})

注:req.body値は文字列であるオブジェクトの属性を返します。

5.自動的にサービスnodemonを再起動するためのツールを使用して、

ここでは、名前のサードパーティ製のツールを使用することができます。nodemon私たちは問題を解決するために、頻繁にコードを修正し、サーバーを再起動します

nodemonサードパーティのコマンドラインツールのNode.jsの開発に基づいており、我々は、スタンドアロンインストールを使用する必要があります。

#持つことができます任意のディレクトリで次のコマンドを実行し
、すべてのことが必要とされている# - 株式会社フリーは任意のディレクトリで実行することができるパッケージをインストールするために参加
NPMインストール --global nodemonを

インストール後、使用します。

#ノードを使用する前に
ノードapp.js 

#は今nodemon使用
nodemon app.js

通じている限り、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(ルータ)
6.5 APIモジュール設計運転データ
/ * 
Student.js 
データファイルモジュール動作
業務:運用データファイル、データ処理だけで、ビジネスを気にしない
* / 

/ * 
    すべての生徒のリストを取得し
    、配列を返す
* / 
exports.find = 機能(){ 

} 

/ * 
    学生のセーブ追加

* / 
exports.save = 関数(){ 

} 

/ * 
    更新学生
* / 
exports.update = 関数(){ 

} 

/ * 
    学生を削除
* / 
輸出。削除 = 関数(){ 

}
6.6ケース - 学生管理システム - ステップで書かれました
  • プロセステンプレート

  • コンフィギュレーションを開き静的なリソース

  • 設定テンプレートエンジン

  • シンプルなルーティング:/学生は、まだページをレンダリング

  • ルーティング設計

  • 抽出ルーティングモジュール

  • 次の新規事業として運営は、ファイルデータに対処する必要があるので、我々はstudent.jsをパッケージ化する必要があります

  • 最初に書き込まstudent.jsファイル構造

    • クエリAPIは、すべての生徒のリストを見つけます

    • findById

    • 保存する

    • updateById

    • deleteById

  • 特定の機能を実現します

    • ルーティングによる要求の受領

    • データ要求を受信(GET、POST)

      • req.query

      • req.body

    • データ処理APIを使用してデータ操作

    • クライアントは、操作の結果に応答を送信します

  • ビジネス機能の順序

    • リスト

    • 加えます

    • 編集します

    • 削除

  • ES6二つの重要なAPI:見つけ、findIndex

おすすめ

転載: www.cnblogs.com/FHC1994/p/11222666.html