クラスベースまたはオブジェクト指向の方法でExpressサーバーを書き込みます.


私たちは、多くのExpress Server機能ベースのアプローチの例を見てきました.それで、私はちょうどOopsで単純な急行サーバーをつくりました.Checkout

今、我々はExpressクラスベースのアプローチを使用できます


インストール


npm i express-oops
また、ノードがあることを確認してください.JS 14またはそれを使用するために新しい.

サーバを作る


const { Server } = require('express-oops');

const express = require('express');
const app = express();

const server = new Server(app, 3000);

server.start();
これはポート3000でサーバを起動します.

コントローラを作る


const { Server, Controller, Methods } = require("express-oops");
const express = require("express");

const server = new Server(express(), 3000);

class IndexController extends Controller {
  path = "";
  routerMiddleWares = [];

  routes = [
    {
      method: Methods.GET,
      path: "/",
      handler: this.index,
    },
  ];

  index(req, res) {
    res.send("Hello World!");
  }
}

server.start(() => console.log("Server started"));
server.loadControllers([new IndexController()]);

ミドルウェアを加える


  • グローバルミドルウェア
    このミドルウェアはリクエストごとに呼び出されます.
    const { Server, Controller, Methods } = require("express-oops");
    const express = require("express");
    
    const server = new Server(express(), 3000);
    
    class IndexController extends Controller {
    path = "";
    routerMiddleWares = [];
    
    routes = [
        {
        method: Methods.GET,
        path: "/",
        handler: this.index,
        },
    ];
    
    index(req, res) {
        res.send("Hello World!");
    }
    }
    
    server.start(() => console.log("Server started"));
    server.loadGlobalMiddleWares([
    (req, res, next) => {
        console.log("Middleware 1");
        next();
    },
    ]);
    server.loadControllers([new IndexController()]);
    

  • コントローラレベルミドルウェア
    このミドルウェアは、コントローラで定義されたルートだけで起動されます.
    例えば、パス/user/のコントローラーを持っている場合.コントローラで定義されたリクエストごとに関数を使う必要があります.
    const { Server, Controller, Methods } = require("express-oops");
    const express = require("express");
    
    const server = new Server(express(), 3000);
    
    class IndexController extends Controller {
    path = "";
    routerMiddleWares = [
        [
        (req, res, next) => {
            console.log("Middleware 1");
            next();
        },
        ]
    ];
    
    routes = [
        {
        method: Methods.GET,
        path: "/",
        handler: this.index,
        },
    ];
    
    index(req, res) {
        res.send("Hello World!");
    }
    }
    
    server.start(() => console.log("Server started"));
    server.loadControllers([new IndexController()]);
    

  • ローカルミドルウェア
    ミドルウェアはルートで定義されます.
    const { Server, Controller, Methods } = require("express-oops");
    const express = require("express");
    
    const server = new Server(express(), 3000);
    
    class IndexController extends Controller {
    path = "";
    routerMiddleWares = [];
    
    routes = [
        {
        method: Methods.GET,
        path: "/",
        handler: this.index,
        localMiddleWares: [
            (req, res, next) => {
            console.log("Middleware 1");
            next();
            },
        ],
        },
    ];
    
    index(req, res) {
        res.send("Hello World!");
    }
    }
    
    server.start(() => console.log("Server started"));
    server.loadControllers([new IndexController()]);