mokjs已有的工具模块
mok_extend_cmd - 扩展更多的命令
-
如果mokjs提供的命令满足不了你的需求,可以自己动手扩展更多的命令。
扩展方法,直接在mok_extend_cmd.js文件里添加命令,示例:
mokjs在调用命令的时候,会传递3个参数
argv 、prj_conf 、response 。参数说明:
argv - 命令参数,如输入命令“mokjs/-blog-b-v=18-lazy”,则argv为{_prj:'blog', _cmd:'b', v:'18', lazy:'lazy'}
prj_conf - 项目配置
response - 服务端响应对象
mok_break_host - 突破本地host请求线上或其他主机资源
-
当把一个域名指向本地host即127.0.0.1后,那么该域名下所有的请求都会发到mokjs服务端(如果请求端口跟mokjs监听端口也一样的话),这时候可能出现一个问题,有些资源在本机上并没有,这就需要把这种特定格式的资源请求重定向到线上或其他主机上。这就是mok_break_host要干的事。
在routes配置里,如果一个请求地址不能匹配对应域名下所有的正则,那么mokjs会自动把这个请求转发到线上。
除此之外,在routes配置里,如果想把某一类请求转发到其他主机上,也可以直接调用mok_break_host模块进行转发,示例如下:
mok_proxy - HTTP反向代理
-
为了方便手机端连接电脑调试,解决手机端不好绑host的问题,可以直接在手机上绑代理,代理IP就是开发机的IP,端口就是mok_proxy监听的端口。然后将指定域名下的请求交由mokjs处理,便可解决手机端的调试问题。
mok_proxy配置示例如下:
mok_proxy监听的端口不能与mokjs服务器监听的端口相同。 只要写了proxy_conf这个配置,mokjs启动的时候就会自动启动mok_proxy模块。
mok_proxy可以同时监听多个端口,每个端口下可以配置多个域名。不匹配正则的请求将直接转发到线上。
mok_proxy2 - 多进程处理请求的HTTP反向代理
-
mok_proxy2与mok_proxy的区别仅仅是请求处理能力更强一点。mokjs启动时不会启动mok_proxy2,mok_proxy2的配置名称为proxy2_conf,即
exports.proxy2_conf = {...}; 。但是配置方法都一样。mok_proxy2对同一个监听端口会启动多个进程处理请求,以增强请求处理能力。
启动mok_proxy2的方法:从命令行进入到mok_modules目录,执行命令
node mok_proxy2 XXXX ,XXXX为mok_proxy2模块监听的端口号。
自己动手开发mokjs模块
-
其实mokjs模块就是一个普通的js文件,主要是通过配置routes来处理指定的请求,或者在处理扩展命令时调用,以实现命令的功能。
示例demo.js: