Lei Xia

Sr. Software Engineer | Solution Architect

抒写代码,尽享生活,筑就未来。

订阅 · 赞赏

avatar

Nodejs导出大数据到Excel

2016年11月13日 · 121 字 · 1 分钟

在实际开发中,数据导出使用频率比数据导入高得多,而数据导出时来源一般是数据库,会有上万的数据导出,如果不做特殊处理的话,会导致NodeJs进程直接被killed。 今天要提到的npm包是 xlsx-writestream,话不多说,进入正题。 npm init -y npm install xlsx-writestream --save //编辑executor.

使用ES6开发Nodejs程序

2016年11月12日 · 65 字 · 1 分钟

ES6发布有一段时间了。但是Nodejs对此支持度还有待加强,就像前端可以使用babel+webpack构建基于ES6的工作流,其实Nodejs也是可以的(不需要手动编译)。当然,最终部署到生产服务器时要记得部署编译后的版本,否则运行时编译对性能是一种损失。 实践 npm init -y npm install babel-core babel-register babel-polyfill --save npm install babel-preset-es2015 babel-preset-stage-3 babel-plugin-transform-class-properties --save 有个需要注意的问题是,nodejs直接执行的那个js文件还是得用原生JS语法(具体取决于Nodejs支持ES6的程度),比如在Nodejs v4.

Nodejs读取大excel

2016年11月12日 · 116 字 · 1 分钟

背景 Nodejs读取Excel时如果不使用stream处理的话,会导致内存溢出,毕竟要一次性加载excel的全部行数到内存中,而Nodejs单进程是有内存限制的,所以在读取超大excel的时候需要使用到stream,如果自己使用Nodejs自带的stream模块去解析excel的话,我想这个过程会很麻烦,本文使用npm提供的excel-stream,该模块使用stream+event方式读取excel,所以不用担心内存溢出问题。 使用 打开终端执行: npm init -y npm install excel-stream --save 新建index.

解决shareUserId导致的app无法升级的问题

2016年10月13日 · 10 字 · 1 分钟

老版本app版本号是2.0.13,Build是20160719。新版本app版本号是2.0.14,Build是2016101301。 初略看来应该是可以覆盖升级的,但是安装新版本的时候提示“应用未安装”。 网上找了一下,大致原因有以下几种: 签名冲突 手机空间不足 当前版本号小于已安装版本号 解决方案都是让用户卸载老版本,然后安装新版本,但是这肯定是可以安装的(测试通过)。 为了找出不能覆盖安装的问题,笔者还是将USB调试模式打开,直接使用IDE安装新版本app。

重复调用file_get_contents的问题

2016年9月18日 · 47 字 · 1 分钟

笔者在写Restful API的时候需要取得原始请求体,读了若干次输入流(将读取操作封装成了函数),发现就第一个参数有值,以后的读取都没有值。 起初以为是参数名写错导致读取失败,检查发现不是这个问题。 单步调试发现php://input只有第一次读取有值,以后的调用都是空。遇到这种问题往往需要查PHP的官方文档。 在文档中找到以下说明:

node-sass安装镜像

2016年7月27日 · 32 字 · 1 分钟

安装 npm安装node-sass模块的时候,会卡在 node scripts/install.js这里,因为要去github.com上下载源码,众所周知的原因,国内的网络上github.com速度太不稳定了,所以安装很慢。 这里推荐一种极速安装的方法,当然还是使用万能的淘宝镜像源。

mybatis-generator-gui工具

2016年6月26日 · 2 字 · 1 分钟

官方的mybatis-generator是个jar包只能写好xml配置后命令行生成,感觉略麻烦,这里用swing写了一个gui的开源版本,有需要的话可以去看看。 项目地址

android AsyncTask示例

2016年6月23日 · 279 字 · 2 分钟

android实现异步的方法有很多种,本文只介绍用的比较多的AsyncTask。从类名就可以看出来该类是专为异步而生,API也很简单。 AsyncTask接口原型 public abstract class AsyncTask<Params, Progress, Result> { .