ExpressjsとTypescriptによるNODEJSその1


ExpressjsとTypescriptによるNODEJSその1


このポストでは、私たちはどのようにShryssJSとTypesScriptをゼロからサーバーを作成する方法を参照してください、このポストは理解しやすく、各物事を徹底的に説明するためにいくつかの部分に分割されます.

リポジトリからコードにアクセスできます


始める


NODEJSでプロジェクトを開始する最初のステップは、次のコマンドを実行します.
npm init -y 
このコマンドは、ファイルパッケージを作成してプロジェクトを開始します.JSON
ここで依存関係をインストールしなければなりません.この場合、TypescriptでExpressを使います.
依存:
  • エクスプレス
  • dev依存関係:
  • タイプスクリプト
  • TSノード
  • @タイプ/ノード
  • @種別・表現
  • なぜ、私たちはすべてのタイプスクリプトをdevdependenciesとしてインストールしますか?さて、私たちがタイプスクリプトを使用してコードを書いているとしても、コードは標準のJavaScriptに再コンパイルされることを覚えておきましょう.したがって、アプリケーションを実行するためには、タイプスクリプトは必要ありません.我々が開発中に必要なのは、開発依存性として保存される理由です.
    では次のコマンドを実行しましょう.
    npm init express 
    

    および
    npm init -D typescript ts-node @types/node @types/express 
    
    一度、すべての依存関係をインストールしました.JSONは以下のようになります.
    {
       "name": "nodejs",
       "version": "1.0.0",
       "description": "",
       "main": "index.js",
       "scripts": {
         "test": "echo \"Error: no test specified\" && exit 1"
       },
       "keywords": [],
       "author": "",
       "license": "ISC",
       "dependencies": {
         "express": "^4.17.3"
       },
       "devDependencies": {
         "@types/express": "^4.17.13",
         "@types/node": "^17.0.25",
         "ts-node": "^10.7.0",
         "typescript": "^4.6.3"
       }
    }
    

    Remember that the versions can change depending on when you read this post.


    設定スクリプト


    npx tsc --init
    
    tsconfig我々が以前のコマンドで作成したJSONファイルにはたくさんのコードが含まれており、このコードの多くがコメントアウトされているので、あなたの好みに合わせて実験や設定ができます.しかし、いくつかの設定を説明します.
  • モジュール:このオプションを使用すると、生成されたJavaScriptコードで使用するモジュールマネージャーを指定できます.例えば' none '、' common '、' amd '、' system '、' umd '、' ES 2015 '、' ES 2020 '、' esnext 'です.最も一般的でデフォルトのモジュールマネージャはCommonJSです.
  • Target :このオプションを使用すると、プロジェクトで使用するEcmasScriptのバージョンを指定できます.利用可能なバージョンは' ES 3 '(デフォルト)、' ES 5 '、' ES 2015 '、' ES 2016 '、' ES 2017 '、' ES 2018 '、' ES 2019 '、' ES 2020 '、または' ESNENS 'です.
  • outdir :このオプションを指定すると、どのルートでJavaScriptコードが生成されるかを指定できます.
  • rootdir :このオプションは、typescriptファイルがどこにあるかを指定する場所です.
  • strict :オプションはデフォルトで有効になり、厳密な型チェックオプションを有効にします.
  • TSconfigでこの設定についての詳細を読むことができます.JSONファイル自体、あるいは公式なタイプスクリプトドキュメントから.
    私の場合は、TSconfigで以下の設定を使用します.JSON :
    {
      "compilerOptions": {
        "module": "commonjs",
        "esModuleInterop": true,
        "target": "es6",
        "rootDir": "src/",
        "outDir": "./build",
        "strict": true
      }
    }
    

    ExpressJSの最初のサーバー


    Typescriptを設定すると、それは私たちの最初のWebサーバーを作成する時間です.indexというファイルを作りましょう.TS
    このファイルには次のコードがあります.
    import express, { Request, Response } from 'express';
    const app = express();
    
    app.get('/', (req: Request, res: Response) => {
      res.send('Hello World');
    });
    
    app.listen(8000, () => {
      console.log('The application is listening on port 8000!');
    });
    
    まず最初に、要求と応答タイプとともにExpressからExpressをインポートします.
    一度この行を我々のアプリを初期化する必要が行われますて
    const app = express();
    
    ここでメッセージを返すget type endpointを追加するので、次のようにしなければなりません.
    app.get("/");
    
    我々のアプリを持っているし、我々は我々のアプリを持っているし、我々はこのケースでは、私たちのエンドポイントのメソッドを入れて、これは2つのパラメータを開始する関数を取得する取得、それから我々はそれにミドルウェアを追加することができますが、現時点では、我々はそれが私たちの最初のルートであることを望むようにルートと文字列である2は、我々はちょうどそれをする必要があります/と明示的にこれは私たちの主なルートになることを理解してください.
    コールバックである2番目のパラメータを追加しなければなりません.このコールバックは、リクエストと応答の2つのパラメータを受け取ります.
    app.get('/', (req: Request, res: Response) => {
    });
    
    ご覧の通り、すでにタイプを追加しました.2つのパラメータに名前を付けることを忘れないでください.しかし、コンベンションと最も一般的なものは、REQと研究です.
    このコールバックの内部では、ルートにアクセスするときに実行されます.
    app.get('/', (req: Request, res: Response) => {
      res.send('Hello World');
    });
    
    Red . send (' hello world ');我々が行うことは、我々の呼び出しにテキストで応じるようにそれを言うことです.
    さあブラウザでこれを見ましょう.しかし、そうする前に、我々は1つのものを必要とします.
    そこで書きます.
    app.listen(8000, () => {
      console.log('The application is listening on port 8000!');
    });
    
    これは2つのパラメータを受け取ります、最初のポートは我々のサーバーが聞くでしょう、そして、サーバーが準備ができているとき、実行されるコールバックは現在コンソールに置かれます.ログ.
    これを考慮して、サーバーを実行します.
    私たちがtypescriptで動作しているので、ノードがそれを読むことができるように、我々はjsにコンパイルしなければなりません.
    npx tsc --project ./
    
    ビルドフォルダが生成されます.これにはコードがあります.我々が理解しないかもしれないが、すでにコンパイルされます.
    我々のコードのコンパイルをスピードアップするために、私たちのパッケージにスクリプトを作成することができます.スクリプトセクションのJSON :
    "scripts": {
         "build": "npx tsc --project ./",
         "test": "echo \"Error: no test specified\" && exit 1"
       },
    
    コンパイルするために今すぐビルドします.
    npm run build
    
    スクリプトを作成するたびに、以下のコマンドを実行しなければなりません.
     npm + run + script name
    
    この時点でコマンドを書くことができます.
    node ./build/index.js
    
    次の出力が表示されます.
    ❯ node ./build/index.js
    The application is listening on port 8000!
    
    Webブラウザを見てみましょう.

    我々が見ることができるように、我々は我々の終点から反応を持ちます.
    あなたがこの記事で見ることができるように、我々はExpressJSとTypesScriptで我々の最初のサーバーをつくりました.
    次の部分では、我々はNodemonを使用して開発をスピードアップする方法を見て、我々はまた、さまざまな種類の形式に対応する方法を参照してください.他のHTTP動詞とより多くの要求.
    あなたがこのポストについての質問をするならば、あなたはコメントでそれを残すことができます.または、あなたがとにかくそれを残すことができる任意の勧告がある場合.
    次の部分は4月19日です.