前端开发服务框架

mokjs已有的工具模块

mok_extend_cmd - 扩展更多的命令

如果mokjs提供的命令满足不了你的需求,可以自己动手扩展更多的命令。

扩展方法,直接在mok_extend_cmd.js文件里添加命令,示例:

mokjs在调用命令的时候,会传递3个参数argvprj_confresponse。参数说明:
    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: