hijk
基于JDK8的JS运行环境jjs的一个JavaScript WebAPI开发包。
项目主页:https://github.com/iboxdb/hijk
安装
下载解压,假设安装目录为:/opt/hijk
新建工程
要建立一个新项目,建立一个目录myprj
:
mkdir myprj mkdir myprj\html mkdir myprj\iboxdb mkdir myprj\js
运行一下:
export HIJK_HOME=/opt/hijk jjs -cp $HIJK_HOME/kits/jetty-io-9.2.1.v20140609.jar:$HIJK_HOME/kits/servlet-api-3.1.jar:$HIJK_HOME/kits/iBoxDBv18.jar:$HIJK_HOME/kits/jetty-http-9.2.1.v20140609.jar:$HIJK_HOME/kits/jetty-server-9.2.1.v20140609.jar:$HIJK_HOME/kits/jetty-util-9.2.1.v20140609.jar $HIJK_HOME/build.js
程序都放在js
目录下,比如我们新建一个程序文件js/demo.js
:
hijk.api.helloworld = function(map, request, response){ return "Edit Hello World" };
浏览器中可以通过地址访问:http://localhost:8080/api/helloworld
对js
目录下的任何修改都会及时响应,而且http://localhost:8080/edit/js/demo.js
还可以直接编辑js/demo.js
代码。
简介
返回字符串、JSON、DOM
hijk.api.helloworld = function() { return "Hello World!"; }; hijk.api.helloworld2 = function() { return {MSG: 'Hello World!'}; }; hijk.api.helloworld3 = function() { return "<h3>Hello World!</h3>"; };
在HTML中调用API
建立文件html/index.html
:
<html> <body> <input type="button" onclick="hello();" value="click me" /> </body> <script type="text/javascript"> function hello() { var req = new XMLHttpRequest(); req.open("GET", "/api/helloworld2", true); req.onreadystatechange = function() { if (req.readyState === 4 && (req.status === 304 || req.status === 200)) { var o = eval("(" + req.responseText + ")"); alert(o.MSG); } }; req.send(); } </script> </html>
带参数的API
hijk.api.get = function(map,request) { var msg = { url: request.getRequestURI(), id : map.id[0], name: map.name[0] }; return msg; };
访问:http://localhost:8080/api/get?id=99&name=andy
定义数据表
hijk.table.table1 = { data: {"id": 0, "name": ""}, key: ["id"], index: [["name"]] }
插入记录
hijk.api.table1_insert = function() { var tid = hijk.db.id(); var v = { id: tid, name: "name" + tid, fieldA: "fieldA" + tid, fieldB: "fieldB" + tid }; if (hijk.db.insert("table1", v)) { return tid; } else { return -1; } };
读取记录
hijk.api.table1_select_sum = function() { var r = 0; hijk.db.select("from table1", [], function(v) { r += v.id; }); return r; };