express 如何将 router.get(“/”,function({})); router.get(“/index”,function({})); router.get(“/index.html”,function({})); 写到一个路由处理上,而不是写三遍?
我来写的话,就写三遍。
你这个完全不需要路由啊,把index.html放到public文件夹下,然后设置:
app.use(express.static('public'))
@jingsam 正解
@jingsam 这个不是静态文件,只不过后缀名是.html
@alsotang 好的,你说了就是
正则匹配
正则
伪静态化~哈哈
首先正则是可以的 app.get(/^\/(index(\.html)?)?/, function(){ ... })
就 router 来说, 他是只支持一个 path 的 https://github.com/expressjs/express/blob/4.13.4/lib/router/index.js#L509
@magicdawn +1
感觉正则不如写三遍 哈哈哈
感觉没必要支持3个一样的路由,直接支持 /
结束,又不是静态的,没必要再加个index或index.html
router.get([’/’,’/index.html’],function({}));
@x-da 居然能支持这个调调的啊,涨知识了
同楼上,正则匹配是最简单的,如果自己玩的话可以获取路径switch选择
app.get(’/:var(index|index.html)?’, fn)
有的时候过度压缩代码也有坏处,我就写三遍。
@alsotang 为啥 易读?
@binking338 如果通用需求的话,就用正则来处理。
如果只是为了首页的话,写三遍路由的复杂度比写正则轻松很多。
@x-da 这个行的通?
@flamingtop 您好,请问这是什么操作 这个/:var() 简直666 表示并没有找到相关的文档说明(眼有点瞎) 可否给个相关说明文档链接 谢谢了 跪求
@1252198830 expressjs的官网router部分