如何运用JS脚本快速搭建web服务,轻量化蜂鸟(Hummingbird)引擎让你多快好省

305 阅读2分钟

介绍

Hummingbird 是一套遵循 MIT协议的开源 JavaScript 运行引擎(暂未开放,提供打包文件,下载地址如下)。

wwb.lanzoub.com/b01ps57qd 密码:cbcz

设计的初衷是为了敏捷开发,搭建你所需的网络测试平台或者监控本地资源。

为什么用Hummingbird ?

  1. 一旦保存编辑的代码,即可快速编译运行,无需手动编译。
  2. 无需记住过多API,采用xml配置方式快速完成初始化。
  3. 避免回调地狱,改造Node.js的原有api,将异步函数改为同步。

快速开始

获取应用:

第一步:配置Hconfig.xml

这里准备好了配置模板,可新建一个xml格式文件名为Hconfig.xml的文件,将下面xml配置文件复制进去。

<?xml version="1.0" encoding="utf-8"?>
<Hummingbird vesion="13">
    <jsinit>
     <http bindaddress="localhost:8080"/>
    </jsinit>
    
    <jscode loadfromfile="">   
        <script>
        	 function init() {
                console.log("让我们快速开始把"); 
            }
            function httprecv(req,res){
                console.log(JSON.stringify(req));
                res.write(req.Path)
            }
        </script>
    </jscode>

    <jsparams>
    </jsparams>
</Hummingbird>

简单说明以下配置项:Hconfig.xml分三基础个标签。

  1. jsparams,可获取到Hconfig.xml内置的属性,这个以后再介绍。
  2. jsinit 此标签内的配项用于快速搭建初始化配置,如上面配置中添加http标签,用来初始化http服务端,而不需要写专门的api。这里<http bindaddress="localhost:8080"/> 绑定了本地服务器的8080端口,可根据需求修改端口。
  3. jscode标签,表示js代码块,所有的代码逻辑都在这里编写。
function init() {}

script标签下的init函数在jsinit配置项下的所有配置完成后触发调用。

function httprecv(req,res) {}

script标签下的httprecv函数在接受http请求后触发调用。参数req接受所有的请求,res为向网页返回数据。

第二步:编写js代码

在步骤一中,为你准备了配置模板,只要将此文件放入到Hummingbird.exe的同级目录下即可。

我们简单过一下jscode标签中代码。

 function init() {
                console.log("让我们快速开始把"); 
            }

这里是向控制台输出“让我们快速开始把”这句话。或者什么都不写也行。但init函数需要保留。

 function httprecv(req,res){
                console.log(JSON.stringify(req));
                res.write(req.Path)
            }

代码第一行打印req对象的所有属性。第二行使用res对象下面的write函数,将url路径返回。

第三步:测试

在浏览器中,输入http服务地址,可看到页面中展示出了url路径。

图1 下面是req参数打印的内容,用红色标注出来: req

对于req对象中的属性说明:

  • Body: http报文体中的内容
  • Method: http报文体中请求方法,除了常见的get还有post,delete,put 等。
  • Path: url路由
  • Querys: 请求参数,所有的请求参数以对象显示。
  • RometeAddr: 请求地址,这里地址包含端口号。