Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js express req.locals与res.locals的概念最佳实践是什么?_Node.js_Express_Routing - Fatal编程技术网

Node.js express req.locals与res.locals的概念最佳实践是什么?

Node.js express req.locals与res.locals的概念最佳实践是什么?,node.js,express,routing,Node.js,Express,Routing,从概念上看,请求似乎是通过中间件传播的内容,直到它到达最终中间件(以请求类型命名:app.get、app.post),然后请求终止,响应开始于最终中间件内部 现在,响应对象被创建了…并且包括任何响应变量和视图 请求是在应用程序入口点结束还是在最终中间件结束 我们是在中间中间件中构建响应对象还是请求对象 或者它们都是平行通过的,这真的不重要吗 这里有一个类似的问题,但回答得并不令我满意 应该让他们通过。这是一种黑魔法,如果不深入挖掘,你可能永远无法确定 这里最重要的是,因为它是JavaScript

从概念上看,请求似乎是通过中间件传播的内容,直到它到达最终中间件(以请求类型命名:app.get、app.post),然后请求终止,响应开始于最终中间件内部

现在,响应对象被创建了…并且包括任何响应变量和视图

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

我们是在中间中间件中构建响应对象还是请求对象

或者它们都是平行通过的,这真的不重要吗

这里有一个类似的问题,但回答得并不令我满意


应该让他们通过。这是一种黑魔法,如果不深入挖掘,你可能永远无法确定

这里最重要的是,因为它是JavaScript,所以req和res from(req,res,next)参数实际上是对底层对象的引用。因此,如果您没有req=null,它只会丢失引用,而不会丢失底层对象。我认为express将引用保存在堆栈中,然后使用它们调用中间件。如果是这种情况,那么所发生的一切就是(从http服务器)从一开始就存在req和res。因此,如果您愿意,您可以使用它们作为信息的容器。而response可能更适合存放它们。请注意,如果覆盖了某个内容,您可能会破坏所有内容。(即,
res.write=null
导致应用程序死机)


避免迷路的最好方法是:a)试着做一个测试b)看看是否有人在做——怎么做?c) 看看来源。不幸的是,Express有相当多的来源。这就是为什么a)是一个很好的起点。

非常感谢您的回复。我看到最佳实践似乎是在中间件管道中对所有数据使用响应对象。我觉得这在概念上并不正确,但这就是文件和其他许多海报所说的。我想我会将其概念化,就像请求在应用程序入口点“结束”一样。然后,您只需使用它的数据并构建响应对象。这是有道理的,我能应付。