Nodejs 通过 fs.createWriteStream 保存文件

工作中难免会遇到处理大文件的时候,有这种stream的处理方式,就不需要一次处理太大的文件,从而导致内存不够用,或者内存占用太多。

fs.createWriteStream 似乎不会自己创建不存在的文件夹,所以在使用之前需要注意,保存文件的文件夹一定要提前创建。

const path = '/xxxxxx/ddd/';

if (!fs.existsSync(path)) {
  fs.mkdirSy
...

NodeJs 版本8.5 体验experimental-modules

最近NodeJs 版本 8.5 已经支持了 ESM module,感觉之前的babel编译可以放弃不用了,不过这个只是一个实验性的,具体稳定与否,是否可以上生产环境,还是需要测试一段时间的。

体验环境搭建:

NodeJs: v8.5.0

依赖包:

  "dependencies": {
    "axios": "^0.16.2",
    "koa": "^2.3.0",
    "koa-router
...

node.js 应用性能分析

node.js 从 4.4.0 版本开始内置了 profiler, --prof 命令选项运行应用会在当前目录生成性能日志文件。

简单记录下使用方法

运行的时候加上 --prof 参数

node app.js --prof

运行后会在当前目录生成一个类似:isolate-0x1d1e1b0-v8-10041.log这样的文件

执行如下命令来分析程序的性能

node --prof-process isolate
...

Nodejs 之 __dirname 的使用

新建个文件

app.js

里面的内容如下:

console.log(__dirname + '/example.db');
console.log('example.db');

如果将app.js放在一个根目录下面

执行node app.js

分别输出如下内容:

/Users/durban/nodejs/koa-mysql-orm-model/example.db
example.db


我们建立一个文件夹app,

...

Nodejs 数据加密传输

数据加密传输,这个目前我接触的几个方式,一个是密文传输,一个明文传输


密文传输,就是用密钥对数据加密,使用公钥对数据解密,传输的通道可以是https的也可以是http的。

明文传输,前提是建立一个安全的传输通道,这里使用证书对通道的安全做了防护,然后传输数据,使用的是明文。


比较专业的 可以后面慢慢分享,不过这里我就介绍下明文传输,如果是用nodejs建立安全通道

使用两个库,分别是urllib和requ

...

PM2启动配置文件参数

PM2启动配置文件参数比较全的一个。如下:

{
  "name"             : "node-app",
  "cwd"              : "/srv/node-app/current",
  "args"             : ["--toto=heya coco", "-d", "1"],
  "script"           : "bin/app.js",
 
...

Nodejs - 通过身份证号验证年龄,出生日期和性别

想要知道自己的年龄,出生日期和性别,或者是别人的,给我个身份证号,我就可以知道,看下面代码。

static validateIdNumberToAgeYear(str){
  let date = new Date();
  let currentYear = date.getFullYear();
  let currentMonth = date.getMonth() + 1;
  let cu
...

Nodejs 之 分享加密算法

这里分享一个node实现的加解密算法,唉,对接了至少三家的接口但是没加的算法都不一样。看着做为程序员的辛苦,我这里分享了。

/**
 * @author zhandapeng <896360979@qq.com>
 * @date 7/12/2016
 *
 * openssl pkcs12 -in 9f_KDJZ_private.pfx -out 9f_KDJZ_private.pem -node
...