クラスベースまたはオブジェクト指向の方法でExpressサーバーを書き込みます.
3626 ワード
私たちは、多くの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()]);
ミドルウェアを加える
npm i express-oops
const { Server } = require('express-oops');
const express = require('express');
const app = express();
const server = new Server(app, 3000);
server.start();
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()]);
Reference
この問題について(クラスベースまたはオブジェクト指向の方法でExpressサーバーを書き込みます.), 我々は、より多くの情報をここで見つけました https://dev.to/muhammadsemeer/write-express-server-in-class-based-or-object-oriented-way-kpnテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol