0
是否有可能获取目录中的所有装饰器?我想实现路由组件,它的工作原理相同的方式在Symfony的,它使用注解:获取所有装饰器
@Route("/")
public function index() { // ...
于是开始了我的应用程序时,我需要找到所有的注释和创建我的路出来。这可能吗?
编辑:只是澄清:我在谈论一个NodeJS应用程序。我想遍历目录中的所有文件并查找所有装饰器。
是否有可能获取目录中的所有装饰器?我想实现路由组件,它的工作原理相同的方式在Symfony的,它使用注解:获取所有装饰器
@Route("/")
public function index() { // ...
于是开始了我的应用程序时,我需要找到所有的注释和创建我的路出来。这可能吗?
编辑:只是澄清:我在谈论一个NodeJS应用程序。我想遍历目录中的所有文件并查找所有装饰器。
您需要查找/打开文件(使用fs
),然后自己解析或使用Compiler API。这些听起来都不那么有趣。
的替代(如果我理解您的方案)是注册一个调用装饰的每个组件,是这样的:如果这Route
装饰是不是你的,但是第三方的一部分
const REGISTRY = new Map<string, Function[]>();
export function Route(path: string) {
if (!REGISTRY.has(path)) {
REGISTRY.set(path, []);
}
return (constructor: Function) => {
REGISTRY.get(path).push(constructor);
// do what ever the decorator does
}
}
然后使用你自己的装饰者来调用原来的装饰者。
这应该够了,谢谢:) – nehalist
你是什么意思“获取目录中的所有装饰器”?你想遍历特定目录中的所有文件,然后每个文件检查它的所有装饰?这甚至是一个节点应用程序或浏览器吗? –
是的,遍历目录中的所有文件并检查它的装饰器正是我想要的。我们正在讨论一个NodeJS应用程序。 – nehalist