Untitled

Express Life Cycle

Untitled

Ref:

「筆記」- 何謂 Middleware?如何幫助我們建立 Express 的應用程式

Untitled

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

app.use(function(req, res, next) => {
  console.log('Time:', Date.now())
  next()
})
const express = require("express");
const app = express();
const mongoose = require("mongoose");

app.set("view engine", "ejs");

// middlewares
app.use(express.static("public"));
app.use((req, res, next) => {
  console.log("Hi, I am the first middleware");
  next();
});
app.use((req, res, next) => {
  console.log("Hi, I am the second middleware");
  next();
});

// mongoose
//   .connect("mongodb://localhost:27017/test", {
//     useFindAndModify: false,
//     useNewUrlParser: true,
//     useUnifiedTopology: true,
//   })
//   .then(() => {
//     console.log("Connected to mongodb.");
//   })
//   .catch((e) => {
//     console.log(e);
//   });
app.get("/", (req, res) => {
  res.send("Welcome to homepage");
});

app.listen(3000, () => {
  console.log("Server running on port 3000.");
});

Untitled

const express = require("express");
const app = express();
const mongoose = require("mongoose");

app.set("view engine", "ejs");

// middlewares
// 不管什麼樣的req都設定成POST
app.use(express.static("public"));
app.use((req, res, next) => {
  req.method = "POST";
  console.log(req.method);
  next();
});

mongoose
  .connect("mongodb://localhost:27017/test", {
    useFindAndModify: false,
    useNewUrlParser: true,
    useUnifiedTopology: true,
  })
  .then(() => {
    console.log("Connected to mongodb.");
  })
  .catch((e) => {
    console.log(e);
  });

app.get("/", (req, res) => {
  res.send("Welcome to homepage");
});

app.listen(3000, () => {
  console.log("Server running on port 3000.");
});

Untitled

** 因為上段程式碼中只有 get, 如果 method被設定成 POST的話就無法處理

如果以下設定成POST就可以, 或是改成 app.use則GET POST兩者皆可取得

app.post("/", (req, res) => {
  res.send("Welcome to homepage");
});