设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 软件追踪 查看内容

GoSqlGo 1.2.0发布,添加Node.js支持

2019-5-17 10:31| 发布者: joejoe0332| 查看: 204| 评论: 0|原作者: oschina|来自: oschina

摘要: GoSqlGo ( https://gitee.com/drinkjava2/gosqlgo) 天下武功,唯快不破,程序无非就是接收用户输入、存到数据库。GoSqlGo能让前端直接存取数据库,独立完成项目开发。 GoSqlGo是一个运行于服务端的工具,它的最大特 ...

GoSqlGo ( https://gitee.com/drinkjava2/gosqlgo)

天下武功,唯快不破,程序无非就是接收用户输入、存到数据库。GoSqlGo能让前端直接存取数据库,独立完成项目开发。

GoSqlGo是一个运行于服务端的工具,它的最大特点就是在运行期动态编译客户端Java代码,所有SQL和Java代码都可以在前端Html页面完成,可以彻底甩掉后端。开发完成后再利用打包工具将SQL和Java从前端移到后端,以实现安全。忘掉MVC吧,因为现在架构变成MV两层了;忘掉FreeMaker之类模板吧,因为Java内嵌到HTML里去了;忘掉后端程序员吧,因为前端把后端的活给干了;忘掉前端校验吧,因为后端校验这活也归前端了,前端校验能偷懒就偷吧。

本次v1.2.0版更新内容:添加了对Node.js脚本的支持,以下为使用示例:

<!DOCTYPE html>
<html>
<head>
<script src="/js/jquery-1.11.3.min.js"></script>
<script src="/js/jquery-ajax-ext.js"></script>
<script src="/js/gosqlgo.js"></script>
</head>
<body>
	...略...
	<div>
		<script>
			document.write($script(`
			        const process = require('process'); 
					var i= parseInt($1)+ parseInt($2); 
			        result="当前Node.js版本号:"+process.version+"<br/> 运行结果1+2="+ i;`, 
			        1, 2));
		</script>
	</div>
</body>
</html>

 从上面的例子未尾可以看到,Node.js服务端的Javascript可以用一个script方法,直接写在客户端的Javascript里了。简单地说,就是Javascript可以嵌入Javascript了,惊不惊喜? 意不意外?  
它的原理是GoSqlGo对于script方法传来的片段,先编译出一个Java文件在服务端,然后每次调用这个Java时,会将调用转发到Node.js服务端上,Node.js服务端根据调用的ID,从磁盘或缓存里读取script文本片段,并用eval方法转为Javascript来执行。 
在发布阶段,用goServ.bat或goServForce命令,将所有的Javascript片段会抽取成服务端的Java源文件,以实现安全性,防止客户端进行Javascript的eval方法的注入攻击。
示例中的nodeServer.js是我临时学了Node.js之后现编的,没有加上DAO存取数据库的功能,如果对它不满意,Node.js高手们请自已上。

GoSqlGo下一个目标是加入对php的支持,以后在Javascript里可以直接嵌入php,或者大家有什么更好的目标及建议也可以提出来。 

另外考虑到有些人不清楚GoSqlGo是干什么的,下面简单贴上另一个GoSqlGo的使用示例,它允许在前端html里直接写SQL和Java进行服务端操作:

<!DOCTYPE html>
<html>
 ...略...  
<body>
    <script> 
	  document.write($java(`return new WebBox("/page/menu.html").setAttribute("title", $1);`, "Transaction demo, use jQuery")); 
	  function getUserListHtml(){ 
		  var users=$$qryMapList(`select * from account where amount>=? order by id`,0);
		  var html="User List:<br/>";
		  for(var i=0;i<users.length;i++) 
			  html+="User ID:" +  users[i].ID+", AMOUNT:"+ users[i].AMOUNT+"<br/>"; 
	      return html;		   
	  } 
	</script>   
 ...略...
</body>
</html>


以上示例用到了Java、Sql、Javascript三种语言。详细的介绍可以参见项目主页#GoSqlGo

另外请大家顺手在码云点个赞,开源不容易,这么优秀的开源项目更是不容易碰到。额,好吧我承认,第一次拉赞助没经验,这么说显得太诚实、太谦虚了,以后会改进。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部