イントロへのイントロ


ここのビデオプレイリストを表現するために私のイントロを見てください:

エクスプレスとノードWebサーバ生態系とは
Webサーバの作成に関しては、ノード生態系にフレームワークはない.これは、カスタマイズとしての柔軟性の多くを与える最小限の独断的なフレームワークです.あなたが最小のフレームワークを楽しむならば、Expressjsはノードが提供しなければならない唯一のオプションでありません..
  • 公案
  • 可憐な
  • ポルカ
  • メルヴァー(私自身の創造)
  • あなたがより堅牢なレール/ジャンゴのような経験を探しているなら、ノードもあなたをカバーしています!
  • 防災研
  • 発泡体
  • ループバック
  • 特別なユースケースのための他の楽しいフレームワークとともに.
  • アポロ( graphql apis )
  • Socketio (チャットのようなリアルタイムアプリケーションの場合)

  • エクスプレスから始める
    NodeJSでできるノードとNPMをインストールしたと仮定します.org
    開始するには、ワークスペース上の任意の場所に空のフォルダを作成し、そのフォルダ内のターミナルを開き、次の手順を実行します.npm init -yこれはパッケージを作成します.今のところ、依存関係やスクリプトを追跡する主な目的があります.では、ライブラリの最初のセットをインストールしましょう.npm i express nodemon
  • 我々のウェブフレームワーク
  • NodeMon :ファイルを実行し、プロジェクトのファイルを監視するコマンドは、ファイルの変更があるときに再起動します.
  • 次のフォルダを作成しましょう.Gitignoreファイルを我々はgithubに特定のものをプッシュしないことを確認します.ファイルには.
    /node_modules
    .env
    
    サーバというファイルを作成します.以下のJS.
    //BRING IN EXPRESS
    const express = require("express")
    //CREATE EXPRESS APPLICATION OBJECT
    const app = express()
    //PORT THE SERVER WILL LISTEN ON
    const PORT = process.env.PORT || 3000 //use environment variables and if not, 3000
    
    
    
    //OUR SEVER LISTENER, SHOULD ALWAYS BE AT THE BOTTOM
    app.listen(PORT, () => {
        console.log(`Listening on port ${PORT}`)
    })
    
    
    当社のサーバーのスケルトンが作成され、我々のパッケージ内のいくつかのスクリプトを作成しましょう.JSON
    "scripts": {
        "start": "node server.js",
        "dev": "nodemon server.js"
    }
    
    何らかの理由でnodemonが何らかの問題を起こすなら、回避策はdevスクリプトをnpx nodemon server.js.
    スクリプトが端末タイプでセットアップされましたnpm run devdevスクリプトを実行するにはあなたのサーバが動いていることを意味しているあなたの端末で「ポート3000を聞く」ことを見るべきです!
    ブラウザを開いてhttp://localhost:3000 そして、あなたは「得ることができません/」を見るでしょう、これはあなたのサーバーが走っていることを意味します.これが意味するのは、“/”の“get”ルートを定義していないことです.
    あなたのサーバが実行している間、それはリクエストを聞いています、そして、それはあなたがHTTP動詞(GET)と終点(/)にマッチすると定義するルートを探します.残念ながら、我々はまだすべてのルートを定義していない!それをしましょう.
    //BRING IN EXPRESS
    const express = require("express")
    //CREATE EXPRESS APPLICATION OBJECT
    const app = express()
    //PORT THE SERVER WILL LISTEN ON
    const PORT = process.env.PORT || 3000 //use environment variables and if not, 3000
    
    //ROUTES DEFINED BY A FUNCTION NAMED AFTER THE VERB ITS RESPONDING TO
    //Takes a string for the endpoint, and a callback to define handling
    app.get("/",(request, response) => {
        response.send("Hello World") //Sending back a text response
    })
    
    //THIS ROUTE HAS A URL PARAM, VARIABLE IS NOTED WITH A COLON
    app.get("cheese/:param", (request, response) =>{
        const {params, query} = request //Destructuring URL params and URL queries from request object
        response.json({params, query}) // Sending a JSON Response
    })
    
    
    
    //OUR SEVER LISTENER, SHOULD ALWAYS BE AT THE BOTTOM
    app.listen(PORT, () => {
        console.log(`Listening on port ${PORT}`)
    })
    
    
    これらの変更を保存した後、端末のNodeMonに通知します.今、これらを試してみましょう!
    …に行く.
    http://localhost:3000/
    
    文字列は"Hello World "
    …に行く.
    http://localhost:3000/cheese/thisisaparam?this=is&a=query
    
    Paramとqueryオブジェクトを持つオブジェクトが表示されるはずです

    あなたができる他のこと
    次の手順を学ぶには、Expressドキュメントを参照してください.
  • Expressを使用してHTMLのような静的なファイルを提供します.静的
  • レスポンスを使用してテンプレートをレンダリングします.あなたの選択のテンプレート言語(EJS、パグ、ハンドルバー、口ひげ、エクスプレス反応ビュー)でレンダリング
  • ミドルウェアを使用してリクエスト本文を解析します.urlcode ()
  • ルータでルートのクラスタを作成します.
  • また、このポストの初めにリンクされた私のExpressプレイリストからこのすべてを学ぶことができます.

    テンプレート
    ここではいくつかのテンプレートを使用することができます.
    EJSテンプレートで表現するnpx merced-spinup expressejs projectNameエクスプレスエクスプレスエクスプレスnpx merced-spinup expressreact projectName安心のためのエクスプレスnpx merced-spinup expressrest projectNameエクスプレスエクスプレスで見るnpx create-ervmongo-app projectNameエクスプレスAPInpx merced-spinup expressmongo projectNamePostgresでAPIを表現するnpx merced-spinup expresspg projectName