Express-Middleware

Middleware

昨天有用 Reason 寫出了一個 helloworld

今天來增加一些東西

  • use
  • Route
    • Middleware
    • 多個 Middleware
  • Json

use

Express 的 middleware 有兩種形式

一種是 app.use

他的 input 是 handler

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* 在上面的範例中  `require` 了一個 `express` 他是一個函式 它會回傳一個 `app` 的物件
然和對 `app` 的這個物件 有使用到兩個函式
`listen` 和 `get`
listen 會丟入一個參數(int)
get 會丟入兩個參數(string, function)
而在 get 中丟入的 function 會有兩個物件 `req`, `res`
因為只有使用到 `res.send`
大致上我們可以先宣告剛剛有提到函式 和參數的類型 */
type res = {.
[@bs.meth] "send": string => string
};

type nextFun = unit => string;
type handler = (string, res, nextFun) => string;

type expressApp = {.
[@bs.meth] "use": handler => unit,
[@bs.meth] "listen": (int) => unit,
[@bs.meth] "get": (string, handler, handler) => string
};

[@bs.module] external express: unit => expressApp = "express";

let app = express();

app##use((_, _, next) => {
Js.log("here is use function");
next();
});

app##get("/", (_, _, next) => {
Js.log("hello next");
next();
}, (_, res, _) => res##send("Hello World!"));

app##listen(3000);

當你打開瀏覽器 http://localhost:3000 之後

終端機會顯示

1
2
here is use function
hello next

這樣就完成了 use 的使用

簡單吧!

文章目录
  1. 1. Middleware
    1. 1.1. use
|