ESLint - no-await-in-loop 疑惑

在使用eslint的时候,遇到async/await语法会报错,总是提示no-await-in-loop。举个例子看下面的代码的逻辑for(leti=0;i<userRedpacketItem.length;i+=1){userRedpacketItem[i].product_id=awaitproductModel.redpacketMapPrdIdToRefId(ctx,userRedpacketItem[i].product_id);//是否过期userRedpacketItem[i]=userHasRedpacketModel.markExpire(userRedpacketItem[i]);}注意点是在for循环中使用了await有点懵了,不能await,那我怎么取值进行更新值呢,根本就没有办法处理了,难我要先进行取值然后在进行循环赋值?嗯,这样肯定不行的,看来自己还是有点菜,不...

Node.js 之 Koa2 添加travis ci 持续集成工具

最近使用koa2做项目测试开发,想整合下travisci,网上资料也比较少,于是自己就整了个,做个记录。先来看下travis.yml的配置language:node_jsnode_js:-"6"before_script:-./node_modules/.bin/knexmigrate:latest--knexfile='./app/knexfile.js'script:-npmruntest因为是接口测试,所以首先需要做表创建等操作。测试的命令:NODE_ENV=productionNODE_CONFIG_DIR='./app/config/'./node_modules/.bin/mocha--require'babel-polyfill'--compilersjs:babel-register./app/test/**/*.js主要是测试这里,使用了supertest,大概看下是如何...

node.js 应用性能分析

node.js从4.4.0版本开始内置了profiler,--prof命令选项运行应用会在当前目录生成性能日志文件。简单记录下使用方法运行的时候加上--prof参数nodeapp.js--prof运行后会在当前目录生成一个类似:isolate-0x1d1e1b0-v8-10041.log这样的文件执行如下命令来分析程序的性能node--prof-processisolate-0x1d1e1b0-v8-10041.log具体解析分析的结果请看参考文章参考:诊断node.js应用CPU占用过高的问题EasyprofilingforNode.jsApplications|Node.js

koa2 之 migration with knex

安装knexfilenpminstall-gknex然后在项目的根目录knexinit将会产生knexfile.js,内容类似如下//Updatewithyourconfigsettings.module.exports={development:{client:'mysql',connection:{host:'127.0.0.1',user:'root',password:'',database:'<YOURTESTDBNAME>',charset:'utf8'}},staging:{ ...

Nodejs 之 __dirname 的使用

新建个文件app.js里面的内容如下:console.log(__dirname+'/example.db');console.log('example.db');如果将app.js放在一个根目录下面执行nodeapp.js分别输出如下内容:/Users/durban/nodejs/koa-mysql-orm-model/example.dbexample.db我们建立一个文件夹app,app下建立一个app.js里面的内容如下:console.log(__dirname+'/example.db');console.log('example.db');执行nodeapp.js分别输出如下内容:/Users/durban/nodejs/koa-mysql-orm-model/app/example.dbexample.db可见,__dirname追加了自身的目录路径,一般这样做的好处是,可以避免文件的混乱调用。

Nodejs 数据加密传输

数据加密传输,这个目前我接触的几个方式,一个是密文传输,一个明文传输密文传输,就是用密钥对数据加密,使用公钥对数据解密,传输的通道可以是https的也可以是http的。明文传输,前提是建立一个安全的传输通道,这里使用证书对通道的安全做了防护,然后传输数据,使用的是明文。比较专业的可以后面慢慢分享,不过这里我就介绍下明文传输,如果是用nodejs建立安全通道使用两个库,分别是urllib和request,这里的证书只介绍使用pfx文件urllib库的方式consturllibRequest=(url,method,data,pfx,pass)=>{returnnewPromise(function(resolve,reject){&n...

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

想要知道自己的年龄,出生日期和性别,或者是别人的,给我个身份证号,我就可以知道,看下面代码。staticvalidateIdNumberToAgeYear(str){letdate=newDate();letcurrentYear=date.getFullYear();letcurrentMonth=date.getMonth()+1;letcurrentDate=date.getDate();letidxSexStart=str.length==18?16:14;letbirthYearSpan=str.length==18?4:2;letyear;letmonth;letday;letsex;let ...

koajs 实现文件下载很简单

Express框架下载文件的方法,我想已经有人已经知道了。这里说下Koajs的方法。首先设置Content-dispositionletfilename='xxxx';ctx.set('Content-disposition','attachment;filename='+filename+'.pdf');//attachment或者ctx.set('Content-disposition','inline;filename='+filename+'.pdf');//inline以上两种的区别是一个是attachment,意思就是附件,还有一种是inline,意思就是内附。区别就是attachment打开的时候可以下载文件,inline有时候可以下载,有时候可以直接浏览,好像跟浏览器有关。然后设置下文件类型ctx.set('Content-type','application/...

Nodejs 之 分享加密算法

这里分享一个node实现的加解密算法,唉,对接了至少三家的接口但是没加的算法都不一样。看着做为程序员的辛苦,我这里分享了。/***@authorzhandapeng<896360979@qq.com>*@date7/12/2016**opensslpkcs12-in9f_KDJZ_private.pfx-out9f_KDJZ_private.pem-nodes*opensslx509-in9fwlc_public.crt-outformder-out9fwlc_public.der*opensslx509-in9fwlc_public.crt-informder-outformpem-out9fwlc_public.pem**玖富加密解密*/'usestrict';constcrypto=requi...