express 如何将“/”,"/index","index.html"写到一个路由处理上,而不是写三遍?
发布于 2 个月前 作者 qimuyunduan 942 次浏览 来自 问答

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

20 回复

我来写的话,就写三遍。

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

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

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

@alsotang 好的,你说了就是

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

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

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

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

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

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

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

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

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

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

回到顶部