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()
有一些问题。
1条答案
按热度按时间liwlm1x91#
因为它是express框架,它的工作方式,中间件功能的顺序很重要,这里express.json()非常重要,因为它负责解析带有JSON有效负载的传入请求。它从请求体中提取JSON数据并将其添加到request.body。所以当你在express.json()之前调用route时,节点在请求到达route中间件之前没有解析请求,并且它是空的或未定义的。