命令行模式

ThinkJS 无缝支持命令行模式的调用,控制器的逻辑可以和普通 HTTP 请求的逻辑完全一致,可以做到同一个接口即可以 HTTP 访问,又可以命令行调用。

比如要执行 IndexController 里的 indexAction,可以使用如下的命令:

node index.js /index/index

如果需要带上参数,可以直接在后面加上对应的参数即可,如:

node index.js /index/index?name=welefen

也可以是:

node index.js /index/index/name/welefen

修改请求方法

命令行执行默认的请求类型是 GET,如果想改为其他的类型,可以用下面的方法:

node index.js url=/index/index&method=post

这样就把请求类型改为了 post。但这种方式下,参数 url 的值里就不能包含 & 字符了(可以通过上面 / 的方式指定参数)。

除了修改请求类型,还可以修改下面的参数:

  • host 修改请求的 host 默认为 127.0.0.1
  • ip 修改请求的 ip 默认为 127.0.0.1

修改更多的 headers

有时候如果想修改更多的 headers,可以传一个完整的 json 数据,如:

node index.js {"url":"/index/index","ip":"127.0.0.1","method":"POST","headers":{"xxx":"yyyy"}}

注:参数比如是一个合法的 json 数据结构。

超时机制

命令行模式下执行的操作一般都是比较耗时的,如果代码不够严谨,可能会导致进程一直没有结束的情况。ThinkJS 从 1.1.7 版本开始增加了超时的机制。可以通过下面的配置来指定超时的时间:

cli_timeout: 60 // 超时时间,单位为秒
如发现文档中的错误,请点击这里修改本文档,修改完成后请 pull request,我们会尽快合并、更新。