カスタムパッケージnpm.jsをアップロード
注:有効にするにはメールを送信することを忘れないでください注:ソースNRMのNPMの切り替え注:あなたの名前をパックし、他の人々の繰り返しはいけないの手順を:アカウントにログインしますNPM NPMのadduser
-
アップロード
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ジェネレータ
非同期処理ツール内のノード - > 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を)
参考資料
-
プロミスhttps://blog.csdn.net/MrJavaweb/article/details/79475949を
-
非同期のawait
-
結果を使用して要求されたデータを返すために外側層に対する内側層
-
機能発生器の機能パッケージ非同期+スポーン自動アクチュエータ機能
-
-
nextTick()とsetimmediateでNode.jsの()https://www.cnblogs.com/5ishare/p/5268273.html
-
非同期ライブラリhttps://caolan.github.io/async/