WELCOME TO MY HOME, PLEASE READING AND SHARING.

每天积累一点点,就能进步一丢丢。

nodejs hapi(三) view template

说明上一篇我们介绍了hapi server的会话,本篇view模版。同express一样,hapi也支持多种模版引擎,eg:jade、ejs、html等。配置方式略有不同,下面具体介绍 实现 express 12app.set('views', __dirname + '/views'); //指定views文件路径app.set('view engine', 'ej

Read More...


nodejs hapi(二) server session

说明上一篇我们搭建了基本的hapi server,从本篇开始我们将“添砖增瓦”,今天我们讨论是server session会话的问题。作为web server,session保持是必须要有的基础功能,用来验证用户请求的合法性。在express中我们可以用express-session 插件,app.use(session({…options}))来实现。hapi也是类似,可以用hapi-server-session,但具体引用并不像ex

Read More...


nodejs hapi(一) server

说明最近偶遇nodejs一个框架hapi,经过各种搜贴发现相关的信息很少,据说是国内不太流行,毕竟express还是大腿。具体和express和koa的比较,可以参考diff。这里我们不做好坏对比,我们的原则就是能满足实现的frame很多,具体如何选择具体分析。官方的文案demo比较碎,很不适合初学者上手。这里我们就来个深度的get start server本节将实现hapi server。之后所有的分享均基于hapi v17.step

Read More...


nodejs timeout

说明正常的网络请求无非都是 client —req—> <—res–server,由于业务需要或者xx要求,需要对请求做超时限制。一个请求的timeout可分为三种:1、client requset timeout指的的是客户端请求超时设置,比如5s,意思是client从发起请求开始计时,如果超过5s,server还没有响应header返回,即视为请求超时;2、server response timeout指的

Read More...


说明nodejs作为服务端api开发语言已经不是什么稀奇的事情了,今天分享的不是怎么利用express进行api封装,而是怎么利用middleware中间件对api接口进行签名验证。为什么要做签名验证,原因很简单就是为了安全。 实现大家都知道express route可以很灵活的加入一些中间件包括我们自定义的,今天要实现的数字签名验证需要依赖passport-digital-signature进行二次开发。签名逻辑说明:对每个api请求

Read More...


说明今天谈谈kettle(v7.2)数据同步之增量更新,在实际的业务中经常会遇到增量更新的问题,一般有两种做法:1、先全量删除、后全量插入优点:简单,快速;缺点:修改的增量数据体现不出来,数据体积庞大2、当前数据和历史数据进行一一对比优点:增量数据体积小,更符合业务场景要求缺点:计算成本高、耗费资源 总体实现本例使用的mysql数据库,数据库连接这里不再赘述,参见上一篇说明用到的组件:1、输入:表2、合并记录:用来比较当前和历史数据,生

Read More...


react实现服务器渲染

说明之前我们所有的react spa项目都是前后端分离的客户端渲染,即通过render的方式进行UI呈现,通过ajax或者fetch进行api异步请求数据。 闲暇期间接触到了react服务器渲染方式,决定研究研究。为什么要说服务器端渲染呢?查了些帖子和资料,无非以下几个原因:1、代码复用;2、利于SEO,因为整个html都是由node后台生成好直接输出到前端的。3、提升首屏加载速度 为了更好更快的学习,这里给大家分享一个项目,步骤说明

Read More...


node保存base64编码的图片

说明web开发中经常遇到的一种场景就是保存图片到服务器,这里的服务器可能是专门的图片服务器也可能是api服务器。我们常用的做法就是利用标签为input[type=’file’]的DOM就客户端的file对象拿到服务器进行处理,代码如下:router.post('/uploadfile', multipart(), functio

Read More...


说明上一篇我们介绍了reach页面返回不刷新的问题,但是细心的童鞋发现,当我们有三级页面时1->2->3 ;比如2级页面我们用这个方法缓存住了数据,3->2是没有问题的,但是再从1->2的时候数据应该是从0开始加载,这就不对了。针对这个问题我们该怎么处理呢?也好解决根据this.props.location.action进行判断,1->2action是PUSH 3->2action是POP。到这里相信

Read More...


node-oracle安装 补充说明

说明上一篇我们介绍了oracledb 的安装方法,本篇补充说明先因为oracledb版本升级带来的变更:1、oracle数据版本10g以下不再支持,ORA-: Connections to this server version are no longer supported;2、如果用pm2 启动包含oracledb驱动的项目,需要使用单进程fork模式,用cluster模式驱动会报错3、对于同一版本的centeros 如果

Read More...


说明webpack是大家都知晓的主流打包工具,或者形象的讲是“模块打包机”,看下图想象应该一目了然。很多人都配置配1.x版本的webpack,处于项目框架长久开发或者某些新的功能包对于webpack高版本的要求,比如新版本的react-pdf 2.x,要求webpack>=2.x。这时候你就不得不去升级webpack。抛开这些不说,先看看webpack2.x和webpack1.x的效率对比上图是1.x打包后的文件大小,下图是2.x

Read More...


说明今天谈谈kettle数据同步之数据连接, 实现对于主流的mysql,oracal,sqlserver kettle都是支持连接的,当然连接的前提是必须要有相应的数据驱动,mysql-connector-java-5.1.21-bin.jar;ojdbc6.jar;路径可以是:输入-表输入-新建,在弹出的配置页面填写即可 1、oracle配置实例,连接方式选择jdbc这里需要注意,红色的部分都是必须要填写的。数据库配置的需要要小心坑

Read More...