java 转 nodejs_纯Java网站开发改造为nodejs混合编程

早已对纯JAVA版的网站不满了,不管是繁重的代码编写量,和无谓的3层代码编写都让我提不起兴趣。但是提到nodejs我就有兴趣来做了,原来的网站是放到云服务器上的,由于CPU和内存的限制进一步影响了网站速度和承载量。达到什么程度呢,就是3个人同时应用就会造成访问慢或卡死。

于是我想到nodejs将原来网站重写。将来就会加速网站和体现并发数优势。很多人反对我这样做,说nodejs不适合重逻辑的部分,但好了,89%的应用都是直接从用户获得参数直接传透到数据库,为啥要写那么多代码,什么时候运行过其他计算。偶尔也是对参数进行个加减而已。为啥不将几百行代码缩减到几行。

既然要动手就开始,准备好nodejs,在nodejs.org官网下在nodejs1.2X安装好之后,下在javascript编辑器,或文本都行。我喜欢用文本直接编辑。

罗列了以下几个步骤:

1.安装nodejs mysql包(网上很多教程注意先安装git)

2.修改java工程文件中的web,添加跨域反问,并将跨域限制为本机

3.修改原工程jquery的ajax调用,使用访问本机127.0.0.1:1337端口访问

4.提供nodejs直接调用数据库的调用方法

5.修改调用返回的处理

最后就是写一个工具在原网站上进行500个轮询访问的效率查询,用以鉴定以前的效率和现在效率的差别。

这棵树就是我们需要改造的原因。原来的反问原理是,通过spring->访问controller->访问helper层->访问dao层->访问mysql->再依次将结果json返回页面处理。

上面就是全部步骤,其实我说错了,上面还不是整个过程。因为树是存在一张表中的。其中只有id,pried,name,leve,orderid等,所以关系都是锁在同一张表里,意味着要把所有树排列好一次拿出来是可以的。只要按默认顺序将树整个解析出来即可。但目前存在客户要求树也要按顺序列出来,也就是按order指定的顺序排列,那么一次将树拿出来解析就不可以了。

因此我采用先将根结点读数据库拿出来,在生成根结点界面的时候程序回调再去查询所有子节点,并从数据库返回结果生成整棵树。

这样本来一次调用却变成了N次调用,往返于服务器之间,登陆几个用户打开几次页面我的程序基本就慢的要死。

第一步介绍:我只介绍注意事项即可,其他的请搜索网上吧,而且都有很好的文章。安装好nodejs使用npm装载mysql模块是报错的,因为没装git,使用git后才能安装,输入以下命令

npm install felixge/node-mysql

完成安装mysql;

完成之后试写mysql功能简单调用一下:

varmysql= require('mysql');

varpool=mysql.createPool({connectionLimit:30,host:'localhost',user:'root',password:xxxx});

pool.query('SELECT * FROM zd.alga_cs;',function(err, rows, fields) {if(err)throwerr;console.log('The solution is: ', rows);

});

调用完成后看一下你是否能读出结果,测试成功则nodejs和mysql模块都装好了。

第二步:修改java原来的tomcat,因为在一个页面下以前用jquery的ajax调用spring对应的controller,所以现在需要改成调用nodejs本地下的一个端口。我设置为127.0.0.1:1337下来访问我定义的nodejs代码块。

第一就直接修改了,例如将如下:

$.ajax({ async:false,type:"post", url:"employee.getUnDeparment.do",data:"", dataType:"text", success:function(msg){ mydata=eval("("+msg+")"); // alert(msg); $.each(mydata,function(idx,item){

unuser = item.count; });

改成:

$.ajax({ async:false, type:"get",url:"http://127.0.0.1:1337/employee_getUnDepartment",data:"", dataType:"text", suc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值