下面是我正在使用的代碼:
const express = require('express');
const fs = require('fs');
const app = express();
// MIDDLEWARE
app.use((req, res, next) => {
console.log('Hello from the Middleware 1');
console.log(req.body);
next();
});
app.use(express.json());
app.use((req, res, next) => {
console.log('Hello from the Middleware 2');
console.log(req.body);
next();
});
第一個中間件將 req.body 記錄為undefined,但第二個中間件將 req.body 記錄為原樣。我是 Node.Js 的新手,我找不到正確的解釋。
uj5u.com熱心網友回復:
你有三個中間件:
- 首先,
req.body仍然是未定義的 - 第二個是
express.json(),此決議請求體并填充req.body相應 - 第三個然后記錄
req.body。
uj5u.com熱心網友回復:
另一個答案解決了“為什么它不起作用”,但不是原始問題,即“為什么需要決議req.body ”。
簡短的回答是,您實際上并不知道主體是否會有效地成為 JSON 物件。在.json()基本確保你有一個JSON作為身體。
您可以閱讀有關此S/O 答案的更徹底和更好的解釋。
請注意,express從使用稱為 的第三方庫切換body-parser到使用他們自己的.json()方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/406243.html
標籤:
