Express 路由问题
发布于 6 年前 作者 hello-guoguo 2919 次浏览 来自 问答

Express 的路由支不支持别名啊, 只有重定向(官网我只发现重定向,没找到别名),很难受, Express还会不会更新??

6 回复

@hpgt 哎~把Express项目换成koa岂不是很费劲?

@hpgt 可以app.use([’/’, ‘/home’], require(’./posts’))这样用么?不知道会不会是我想要的效果

使用 AOP 面向切面编程,复写它的 Router。

var router = express.Router([options]);
const old = router.get
const aliasmap = {get: {}} 维护这个 map
router.get = (name', ...args) => {
     aliasmap.get[name] = args[0]
	old(...args)
}

或者代理

var obj = new Proxy(router, {
  get (target, key, receiver) {
     aliasmap.get[name] = args[0]
	 // if is get put post ....
	 const old = Reflect.get(target, key, receiver);
    return (alias, ...args) => {
		// xxxxxx
		old(...args)
	}
  },
});

假如还需要添加生成 urlPath helper 类似的可以参考这个

image.png

@hello-guoguo 这种应该是“/”,“/home”两个路由都能匹配到同一个业务,koa中的别名是浏览器显示的是“/”,实际访问的是“/home”

@MiYogurt 厉害!受教了

回到顶部