V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kid740246048
V2EX  ›  Node.js

求教如何在 Node.js 程序运行时优雅地实现 cli 交互?

  •  
  •   kid740246048 · 2019-05-28 23:27:23 +08:00 · 3730 次点击
    这是一个创建于 1168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    cli

    预期目标大致如上图所示。

    我当前是用 readLine 模块去读取每次输入的字符串并处理字符串,然后再分发到不同的处理函数。

    但是感觉这样的方法在处理字符串时要考虑各种命令+参数的可能,还要考虑可能的错误输入,不仅逻辑复杂,而且非常不优雅。

    在网上搜了一圈,有推荐用 inquirer 模块的,但我了解了一下,这个模块似乎是用于“提出问题-输入回答”这样的模式,似乎不太契合 cli 交互这种逻辑。

    那么问题来了,有没有适合于我这种需求的模块?在此先谢过各位

    6 条回复    2019-05-30 07:40:57 +08:00
    galikeoy
        1
    galikeoy  
       2019-05-29 00:06:01 +08:00
    不用谢
    ruoxie
        2
    ruoxie  
       2019-05-29 00:16:31 +08:00
    commander
    EPr2hh6LADQWqRVH
        3
    EPr2hh6LADQWqRVH  
       2019-05-29 00:34:50 +08:00
    这种东西我以前写过,没有现成的,最后越来越复杂会无限接近 Shell
    所以,不如直接用 shell 吧,你程序创建一个本地 socket,再弄一个命令进程通过这个 socket 和主进程通信。
    azh7138m
        4
    azh7138m  
       2019-05-29 01:08:27 +08:00
    我觉得像是一个 repl https://nodejs.org/api/repl.html
    就是实现一个 Custom Evaluation Function
    kid740246048
        5
    kid740246048  
    OP
       2019-05-30 07:40:08 +08:00 via iPhone
    @avastms 但我想要的更多还是一些自定义的命令,用 shell 去运行的话,还要定义一堆函数、alias 之类的,可能还是上面提到的 repl 更适合我
    kid740246048
        6
    kid740246048  
    OP
       2019-05-30 07:40:57 +08:00 via iPhone
    @azh7138m 这个好像比较适合,我先去研究研究
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1163 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:53 · PVG 03:53 · LAX 12:53 · JFK 15:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.