什么是快递req.locals vs res.locals的概念最佳实践?

从概念的angular度来看,这个请求似乎是通过中间件传播的,直到到达最终的中间件(以请求typesapp.get,app.post命名),然后请求被终止,响应在内部开始最终的中间件。

现在响应对象被创build…并包括任何响应variables和视图?

请求是在应用程序入口点还是在最终的中间件处结束?

我们在中间件中build立响应对象还是请求对象?

还是他们都平行过去,这真的没有关系?

这里有一个类似的问题,但没有回答我的满意。

req.locals与res.locals与res.data与req.data与快速中间件中的app.locals

他们应该被允许通过。 这是黑魔法的事情之一,没有深挖你可能永远不会确定。

这里最关键的是,因为它是JavaScript,所以req和res(req,res,next)参数实际上是对基础对象的引用。 因此,如果您执行了req = null,则只会丢失引用,而不会丢失基础对象。 我认为express将引用保存在堆栈中,然后调用中间件。 如果是这样,那么发生的一切就是(从http服务器)req和res从一开始就存在。 所以,如果你想,你可以用它们作为信息的容器。 与响应可能是更容易的地方来存储他们。 只要注意,如果覆盖某些东西,就可以打破一切。 (即, res.write = null导致死的应用程序)。

避免迷路的最好方法是:a)尝试提出一个testingb)看看是否有其他人在做 – 如何? c)看看源头。 不幸的是Express有相当的来源。 所以这就是为什么a)是一个很好的起点。