express 如何将“/”,"/index","index.html"写到一个路由处理上,而不是写三遍?
 发布于 9 年前  作者 qimuyunduan  9988 次预览  最后一次回复是 7 年前  来自 问答 

express 如何将 router.get(“/”,function({})); router.get(“/index”,function({})); router.get(“/index.html”,function({})); 写到一个路由处理上,而不是写三遍?

22 回复
alsotang

我来写的话,就写三遍。

jingsam

你这个完全不需要路由啊,把index.html放到public文件夹下,然后设置:

app.use(express.static('public'))
qimuyunduan

@jingsam 这个不是静态文件,只不过后缀名是.html

qimuyunduan

@alsotang 好的,你说了就是

magicdawn

伪静态化~哈哈 首先正则是可以的 app.get(/^\/(index(\.html)?)?/, function(){ ... })

elrrrrrrr

感觉正则不如写三遍 哈哈哈

JasonBoy

感觉没必要支持3个一样的路由,直接支持 / 结束,又不是静态的,没必要再加个index或index.html

x-da

router.get([’/’,’/index.html’],function({}));

rpdgcmyk

@x-da 居然能支持这个调调的啊,涨知识了

2linziyi2

同楼上,正则匹配是最简单的,如果自己玩的话可以获取路径switch选择

flamingtop

app.get(’/:var(index|index.html)?’, fn)

mrweidai

有的时候过度压缩代码也有坏处,我就写三遍。

alsotang

@binking338 如果通用需求的话,就用正则来处理。

如果只是为了首页的话,写三遍路由的复杂度比写正则轻松很多。

1252198830

@flamingtop 您好,请问这是什么操作 这个/:var() 简直666 表示并没有找到相关的文档说明(眼有点瞎) 可否给个相关说明文档链接 谢谢了 跪求

flamingtop

@1252198830 expressjs的官网router部分