NPM酷库:lru-cache 基于内存的缓存管理

2018-01-22
阅读 1 分钟
11.9k
但是有时候要缓存的数据量非常小,或者项目规模非常小,也许就是一个工具脚本,使用redis等外部数据库,还得做依赖部署。而直接将数据保存在程序变量中,最经济、快捷。但是这样就会带来一些其他问题,比如缓存更新、缓存过期等。

NPM酷库:ms,毫秒时间描述转换

2018-01-22
阅读 1 分钟
3.7k
在JS中,最常用的时间单位就是毫秒,setTimeout() 、Date.now() 等函数用到的数字表示时间,其单位就是毫秒。直接理解这些数字比较困难,有时候我们需要将表示毫秒的数字转换成字符串,人能直接理解的文本。比如记录、输出程序的运行时间等场景。

NPM酷库:number-random,生成随机数字

2018-01-22
阅读 1 分钟
6.9k
其实只需要 Math.random()就可以生成一个随机数字,但是这个数字大小是0~1,如果我们需要生成一个指定范围的随机数字,那么就需要进一步的处理。

NPM酷库:string-random,生成随机字符串

2018-01-19
阅读 2 分钟
12.7k
此外,我们在很多时候不需要生成像UUID那么长的字符串,而是需要能够快速生成一个随机的复杂字符串,可能同时包含大小写字母、数字、特殊符号等。

NPM酷库:uuid,生成随机ID

2018-01-19
阅读 1 分钟
11.6k
NPM酷库,每天两分钟,了解一个流行NPM库。 在中心化应用中,数据记录的ID往往是数据库生成的自增ID,但是在分布式应用中,就会存在一些问题: 保存数据之前就需要给数据标识ID 数据规模超级大,中央数据库无法满足性能需求 UUID UUID 就是应用在分布式环境中的随机字符串ID,UUID有统一的格式,UUID的标准型式包含32个1...

NPM酷库:qs,解析URL查询字符串

2018-01-17
阅读 1 分钟
15.9k
NPM酷库,每天两分钟,了解一个流行NPM库。 Node.js 标准库中有一个库叫querystring,这个库用来处理URL查询字符串: {代码...} 但是很遗憾,querystring 不支持内嵌对象和数组: {代码...} 如果我们程序的前端界面form表单中存在数组,标准库的querystring就无法满足我们的需求了。 qs qs 是querystring的增强版本,最...

NPM酷库:chokidar监视文件变化

2018-01-16
阅读 2 分钟
16.7k
像 webpack / grunt /gulp 等工具都提供watch模式,当磁盘文件变化后自动重新运行打包。今天我们要学习的chokidar就是一款专门用于文件监控的库。

NPM酷库:commander,命令行参数处理框架

2018-01-15
阅读 1 分钟
5.2k
昨天,我们学习的minimist库,用于解析Node.js命令行参数,能将参数数组process.env.argv 转换为一个更易于访问的对象。

NPM酷库:minimist,命令行参数解析

2018-01-15
阅读 1 分钟
12.9k
昨天我们了解的dotenv库用于从文件中加载环境变量。环境变量用于程序运行时动态加载参数,除了环境变量,我们还可以在启动Node.js 程序时直接指定命令行参数:

NPM酷库:dotenv,从文件加载环境变量

2018-01-13
阅读 1 分钟
19k
我们经常需要Node.js程序运行时加载不同的配置,比如开发环境和生产环境的数据数据库配置就可能不一样,使用 process.env.DB_HOST 环境变量,可以在Node.js程序内部方便获取参数信息。

NPM酷库:jsdom,纯JS实现的DOM

2018-01-12
阅读 1 分钟
7.1k
昨天认识了一个在Node.js环境下操作HTML的库 cheerio,cheerio实现了jQuery接口,用起来十分方便。为什么不直接用jQuery呢?因为Node.js环境中没有实现DOM对象。

NPM酷库:cheerio,服务端jQuery接口实现

2018-01-11
阅读 1 分钟
3.5k
有时,在Node.js服务端,我们也需要类似的操作,比如分析爬虫抓取的HTML内容,如果过能够用jQuery分析,我们的爬虫程序将事半功倍。

NPM酷库:minimatch,模式匹配字符串

2018-01-11
阅读 1 分钟
10.9k
前两天,我们学习了Node.js中模式匹配文件列表的 glob 和 glob 的增强版globby,今天,我们将了解 glob 的基础库: minimatch,用来模式匹配字符串的库。

记一次Docker构建失败

2018-01-10
阅读 6 分钟
7.3k
前段时间,Node.js 官方发布了Node 8.9.3 LTS版本,并且官网首页提示新版本有重要安全更新,“Important security releases, please update now!” ,然后我立即着手公司产品各个模块的Node版本升级。

NPM酷库:globby,增强版的glob

2018-01-09
阅读 1 分钟
13.5k
NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们学习了一个新库 glob,用于模式匹配目录文件。今天,我们要了解的globby,是基于 glob,并进一步得到了增强了功能。 globby 特性 相对于 glob,globby有以下增强功能 Promise 接口 多模式匹配 否定模式匹配 扩展目录: dir → dir/**/* 支持 .gitignore 应用举例 {代...

NPM酷库:glob,通配符匹配文件名

2018-01-08
阅读 1 分钟
12.3k
NPM酷库,每天两分钟,了解一个流行NPM库。 经常,我们的程序需要对磁盘文件进行管理,就需要读取磁盘上的文件列表,然后可能会需要判断文件夹或文件名,还可能需要递归扫描子目录。 glob 今天我们要了解的库 glob,就是专门用来扫描磁盘文件,并返回我们需要的文件类型。 {代码...} 上述代码中,我们会递归查找当前目录...

NPM酷库:depd 声明弃用功能

2018-01-07
阅读 2 分钟
5.3k
Node.js 高效率编程的基础是大量的NPM开源库,开发应用时,找特定领域的NPM库要比自己从头写代码要高效得多。如果某个领域没有对应的公共NPM库,那么我们可以自己编写一个NPM库,并发布到NPM仓库,供大家和自己日后使用。这才是Node.js正确的编码姿势。

NPM酷库:log4js JavaScript日志框架

2018-01-06
阅读 2 分钟
7.6k
前两天,我们认识了 debug 库 和 winston 库,两款管理程序日志的库,其中debug偏向于适合开发调试,winston则更适合在一个完整的 Node.js 应用中管理日常日志记录。

NPM酷库:winston 多路日志记录

2018-01-05
阅读 2 分钟
5.1k
NPM酷库,每天两分钟,了解一个流行NPM库。 昨天,我们认识了debug库的用法,用来控制输出调试日志。但是,debug的特性适合于开发调试,并不适合程序记录运行日志。 今天我们再了解一个日志记录的库:winston,一个多路传输的日志记录库。 所谓多路传输,是指,你可以自定义多个日志储存驱动,比如,将日志输出到终端的...

NPM酷库:debug,控制调试日志

2018-01-04
阅读 2 分钟
15.5k
通常,我们直接使用 console.log 输出调试日志,使用console对象直接将日志输出到控制台,由于Node.js和浏览器环境都默认支持console对象,所以,这种方式是最直接和最简洁的。

NPM酷库:file-type,检测文件类型

2018-01-03
阅读 1 分钟
8.7k
NPM酷库,每天两分钟,了解一个流行NPM库。 通常,我们的程序通过文件后缀名检测类型,这是最直接简洁的方式。但是,在一些情况下,直接通过后缀名检测文件类型,不太合适或行不通,比如: 只得到了数据流,但是没有文件名 被重命名去掉后缀储存的文件 文件后缀和实际内容不匹配或后缀名不受信任 这些问题,在脉冲云的代...

NPM酷库:vm2,安全的沙箱环境

2018-01-02
阅读 2 分钟
13.3k
在Node.js官方标准库中有一个vm库,用来在V8虚拟机环境中编译执行JS代码。通常,我们用vm库来实现一个沙箱,在代码主程序之外执行额外的JS脚本。

NPM酷库:chalk,多彩的粉笔

2018-01-02
阅读 2 分钟
6.4k
NPM酷库,每天两分钟,了解一个流行NPM库。 在梁兴臣公众号文章 《在终端中输出彩色文字》 中介绍了在终端中删除彩色文字的原理,例如 {代码...} 将在终端中输出蓝色带下划线的MCC。 虽然我们已经学会了,在终端中控制字符颜色的原理和方法,但是这种操作太过于繁琐,每一次都需要查颜色样式手册,然后写出一堆无法阅读...

在终端中输出彩色文字

2018-01-02
阅读 2 分钟
7.4k
见字如晤。 开发工作中经常见到终端中各种命令输出的彩色文字,例如 ls 命令就以不同颜色表示文件的不同类型。 而在我们自己写的程序输出的信息却是默认的黑色,本文将为你介绍终端输出带颜色的文字的原理,让我们开发的程序输出的控制台信息有更强的可读性! ANSI Escape code 终端用于文本字符的输入和输出,ASCII编码...

使用Labrador 0.4构建组件化自动化测试微信小程序

2016-10-12
阅读 10 分钟
4.7k
Labrador 是一个专为微信小程序开发的组件化开发框架。 特性 使用Labrador框架可以使微信开发者工具支持加载海量NPM包 支持ES6/7标准代码,使用async/await能够有效避免回调地狱 组件重用,对微信小程序框架进行了二次封装,实现了组件重用和嵌套 自动化测试,非常容易编写单元测试脚本,不经任何额外配置即可自动化测试...

使用Labrador 0.3构建ES6/ES7标准模块化微信小程序

2016-10-09
阅读 6 分钟
21.9k
在上一个版本的Labrador中,组件重用部分功能不完善,今天Labrador发布了0.3版本,相对上一个版本,提供了更强大的组件化功能,并更改了一些模块接口。

微信小程序开发三宗罪和解决方案

2016-09-27
阅读 5 分钟
32.6k
注意 本文章对应版本已经过时,请查阅最新版文档 [链接] QQ交流群 282140496 在微信公布小程序的文档和开发工具后,脉冲软件在第一时间进行了学习和体验,我们发现微信小程序的技术架构和开发体验让我们非常失望。 由于微信小程序的运行环境并不是一个标准的浏览器环境,而且微信的封装工作并不完善,所以我们以往开发中...