非同期プロセスのためのルーティング、フロントエンドツールをNode.jsの

 

カスタムパッケージnpm.jsをアップロード

注:有効にするにはメールを送信することを忘れないでください注:ソースNRMのNPMの切り替え注:あなたの名前をパックし、他の人々の繰り返しはいけないの手順を:アカウントにログインしますNPM NPMのadduser

  1. アップロード

    NPM公開

バックエンドのルーティングノードの基本原理

  • HTPPは、モジュールを介して行わ。実際には、バックエンドのルーティングは、Webサーバであります

  • 経路生成:

    *以前は、マルチページは、新しいページを開くには、リンクをクリックしてください。

    *今人気のある1つのページで、唯一のインデックスは、テンプレートを使用して内部の内容を置き換え、そこにあります。

CONST HTTP =必要とする( 'HTTP')
CONSTホスト= 'localhost'の
CONSTのfs =が必要( 'FS')
CONSTポート= 6868; 
http.createServer((REQ、RES)=> { 
        res.writeHead(200 、{ 
            'コンテンツタイプ': 'text / htmlの;のcharset = UTF8' 
        })
        スイッチ(req.url){ 
            ケース'/ホーム':
                res.write( 'ホーム')
                res.end()
                ブレーク; 
            ケース' / shopcar ':
                fs.readFile(' ./静的/ shopcar.html」、 'UTF8'(エラー、ドキュメント)=> { 
                    RES。書き込み(ドキュメント) 
                })
                ブレーク。書き込み(ドキュメント) 
                    res.end()
            ケース'/1.jpg':
                fs.readFile( './静的/ 1.JPG'、(エラー、ドキュメント)=> { 
                    res.writeHead(200は、{ 'タイプのコンテンツ': 'イメージ/ JPEG'} ); //出力型
                    //バイナリ画像が送信される
                    res.write(ドキュメント、 'バイナリ')
                    res.end()
                })
                BREAK; 
            ケース'/index.js':
                fs.readFile(」静的./ /js/index.js'、(エラー、ドキュメント)=> { 
                    //二値画像を送信する
                    res.write(ドキュメント)
                    res.end()
                })
                BREAK、
                BREAK。
        }
            デフォルト:
    })
    .Listen(ポート、ホスト、()=> { 
        はconsole.log( `サーバーを実行します。http:// $ {ホスト}:` $ {ポート})
    })

 

NPMスクリプト

コンセプト:NPMスクリプトは、フィールドpackage.jsonにスクリプトを指し、

package.jsonを理解します

  • package.jsonプロジェクトの依存関係の情報が記録され、NPMのスクリプトは、設定ファイルをコマンド

    プロジェクトでは、情報の依存関係します:

    *依存関係の生産環境の依存関係

    使用*依存関係devDependencies開発環境

  • スクリプトコマンド:

    * NPMのinit -y初期化

    * NPMの実行DEV&NPMの実行アプリはすべてのコマンドを実行し、最終的な出力

    *実行するために、NPMの実行DEV && NPMの実行アプリ

1  // 。分别创建case.js与ケース2两个文件
2  3 {
 4      "名": "3-jiaoben" 5      "バージョン": "1.0.0" 6      "説明": "" 7      "主": "case.js" 8      "スクリプト" :{
 9          "テスト": "エコー\"エラー:なしテスト指定\" &&出口1" 10          "DEV": "ノードcase.js" 11          "アプリ":『ノードcase2.js』
12 13     }、
 14      "キーワード" :[]、
 15      "著者": ""   16      "ライセンス": "ISC"
 17 }

 

 

非同期フロントエンドのワークフローツール

JavaScriptのタスクを実行するためには、タスクの円滑な実施を可能にする、シングルスレッドである、あなたは非同期を使用する必要があります。キューへの非同期タスクは、メインスレッドの実行キューの終了後、再びタスクを実行します

  • 非同期動作モードのフロントエンド

    1:伝統的な方法:コールバック、イベント

    2:フロント非同期プロセス・ツール(機能のうち、パッケージ、ライブラリー):

    ES6約束

    ES6ジェネレータ

    ES6-ES8非同期機能

    非同期処理ツール内のノード - > nextTi、steImmediate

    サードパーティのライブラリ - > async.js

  • Pormise

    1 CONST = PSE1 新しい新しいプロミス((解決し、リジェクト)=> { // 解決が正常に変更を完了しないであろう、未完成の障害となる拒否
    2          解決( 'タスク' 。3      })。次に、(データ=> {
     図4          にconsole.log(データ)
     。5  。6     })
     。7キャッチ(エラー=> {
     8。IF(エラー)スローエラー; //がエラーをスローは、プロセスは、この時点で中断される9     })
     10 11 12であります pse2 = CONST 新しい新しいプロミス((解決、拒否)=> {
              
       13である          のsetTimeout(()=> {
     14              解決( 'タスクII' 15          }、2000年16      })を(データ=> {
     。17          ;にconsole.log(データ)
     18である 。19     })
     20れるキャッチ(エラー= > {
     21は、IF(エラー)スローエラー;
     22である    })
     23は24の// 2つの方法は、コアを提供することを約束25 // Promise.allは([約束は、実施例2実施例1プロミス])26がある// Promise.race([ )実施例1を約束し、実施例2を約束             
     
     
    27  28 29 // プロミス30 //      .ALL([PSE1、pse2])//すべてのタスクを実行31しない//      .then(()=> {//(データ)=> {}は値を与えることができません32 //          はconsole.log(;「タスク3「)33である//      })34である// メインスレッド」)はconsole.log(」; 35 // 出力現時点でメインスレッド、タスク、タスク2個、3つのタスク36 37 プロミス
     38である    .race([PSE1、pse2])
     39      .then(()=> {
     40          はconsole.log(「タスク3 ' );
     41である42れる    })
     43  
     
     
     
     
     
     
         console.log(「メインスレッド」);
     44  // このときの出力:メインスレッド、タスク、タスク3、二つのタスク
    45  46である// すべてのタスクを順次遅延タスクが、タスクを遅らせるピアなければならない場合であっても、実行します後続のタスクを実行するための導入47 // ![1563348372761](C:\実行する必要がありますすぐに人種 Users \ユーザー管理\のAppData \ローミング\ typora \ typora-ユーザー画像\ 1563348372761.pngを) 
     

     

参考資料

  1. プロミスhttps://blog.csdn.net/MrJavaweb/article/details/79475949を

  2. ジェネレータhttps://www.cnblogs.com/imwtr/p/5913294.html

  3. 非同期のawait

    • 結果を使用して要求されたデータを返すために外側層に対する内側層

    • 機能発生器の機能パッケージ非同期+スポーン自動アクチュエータ機能

  4. nextTick()とsetimmediateでNode.jsの()https://www.cnblogs.com/5ishare/p/5268273.html

  5. 非同期ライブラリhttps://caolan.github.io/async/

 

おすすめ

転載: www.cnblogs.com/jxqw/p/11204859.html