CNode

Express 路由问题

问答
Hhello-guoguo发布于8 年前最后回复8 年前6 回复3783 浏览0 收藏

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

查看回复

回复 (6)

Y
yuedun#1·8 年前

koa支持

H
hello-guoguo#2·8 年前
引用 yuedunkoa支持

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

H
hello-guoguo#3·8 年前
引用 yuedunkoa支持

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

M
MiYogurt#4·8 年前

使用 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

Y
yuedun#5·8 年前
引用 hello-guoguo@hpgt 可以app.use(['/', '/home'], require('./posts'))这样用么?不知道会不会是我想要的效果

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

参与回复
登录后即可参与回复。登录