NodeJS 为什么顺序与React不同?

dldeef67  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(78)
const app = express();
app.use('/auth',userRouter);
app.use(express.json());

我在上面的这段代码上花了整整两个小时,因为我是第一次写它,而且我很早就知道React的顺序并不重要。这段代码中的bug的解决方案是这样的:

const app = express();
app.use(express.json());
app.use('/auth',userRouter);

现在我想知道,在编程术语中,为什么这个顺序如此重要,以至于我的代码一次又一次地失败?
我也试过这个:

app.use(bodyParser.json());     
app.use(bodyParser.urlencoded({ extended: true }));

因为我认为express.json()有一些问题。

liwlm1x9

liwlm1x91#

因为它是express框架,它的工作方式,中间件功能的顺序很重要,这里express.json()非常重要,因为它负责解析带有JSON有效负载的传入请求。它从请求体中提取JSON数据并将其添加到request.body。所以当你在express.json()之前调用route时,节点在请求到达route中间件之前没有解析请求,并且它是空的或未定义的。

相关问题