yargs(节点模块):命令模块文件...解析命令,但不自动执行命令的exports.handler代码

时间:2018-08-24 06:36:08

标签: node.js asynchronous promise typeorm yargs

我在命令模块中使用yargs,即每个命令使用单独的文件,每个命令文件都为自己的命令定义exports.commandexports.descexports.handler

对于我的命令的60%,默认情况下它的工作方式很好。但是我想另外40%首先使用TypeORM连接到异步数据库,然后仅在建立连接之后,才执行包装在.then()中的exports.handler,以使其不执行在数据库连接之前。

问题是,在我的全局入口文件中,一旦定义了所有全局yargs选项,并且我对yargs执行.argv来分析命令(确定该命令是db还是非db命令),还会立即执行exports.handler,因此我没有机会先连接到数据库,然后使用.then包装exports.handler命令代码(对于40%需要它的命令)。

我想避免只为这40%的命令文件中的每个数据库连接添加异步代码。还要避免所有100%的命令都连接到数据库,因为其中60%的命令不需要它。

我即将进行重大更改,不再使用yargs的命令模块...但是必须有更简单的方法来做到这一点?

是否可以告诉yargs我要解析命令,但还不想执行 exports.handler

如果我能弄清楚这一点,那么我可以简单地将需要包装在.then()和不需要包装在其中的命令分开。

0 个答案:

没有答案