app.use('/static',express.static("./public"))比不加'/'/static'效率更高吗

一个前辈这样说的,
我直接写的app.use(express.static("./public")),然后前辈说
“建议改成app.use('/static',express.static("./public"));或者public,可以减少不必要的查询,提高node效率”

为什么加一个虚拟路径会提高效率呢,减少不必要的查询?希望告知下原理,谢谢。萌新。

阅读 4.8k
3 个回答

咱们来看一下文档!

clipboard.png

从上面两句话可知,app.use就是把指定的中间件加载到指定的请求路径下面。其中如果未指定路径, 则默认为 "/"。
这里面有两个关键点:
中间件:express 中的中间件可以看做是能够处理请求和响应,并控制请求走向的单元,一般都是函数。
请求路径:也就是 URL,官网上请求路径是可选参数,其隐含的意思,如果不指定请求路径,就是表示要处理所有的请求,如果指定了请求路径,匹配当前路径并只处理该请求就好,,这个就是可以优化性能的地方。

可能就不用去匹配路由就能知道哪个请求是走静态资源,哪个请求是走路由了。
/static下的请求就直接加载静态资源,否则还要跟router里注册的路由排除一下才知道是静态资源吧!我瞎分析的也不知道对不对。。。

不必在意这个东西,只有在开发环境才用得上, 生产环境一般用nginx去处理静态资源。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题