NPM酷库052:sax,按流解析XML

2018-02-21
阅读 1 分钟
3.9k
在NPM酷库051中,我们学习了如何使用xml2js库将XML格式文档字符串解析为JavaScript的对象数据,本期,我们继续学习sax,一个可以以流编程的方式解析XML。

NPM酷库051:xml2js,解析XML格式数据

2018-02-21
阅读 1 分钟
7.6k
NPM酷库,每天两分钟,了解一个流行NPM库。· 在NPM酷库050中,我们介绍了使用xmlbuilder创建XML格式文档,今天我们来学习如何解析XML文档数据。 xml2js 使用 xml2js 可以方便地将XML格式字符串数据解析成JavaScript中的对象数据。 {代码...} 如上所示,使用xml2js库提供的parseString函数可以方便解析XML数据。此外,xml...

NPM酷库050:xmlbuilder,创建XML文件

2018-02-21
阅读 1 分钟
4.6k
在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开始,我们介绍Node.js快速读写XML格式相关的NPM库。

NPM酷库049:csv-parse,解析csv文件

2018-02-21
阅读 1 分钟
8.5k
在NPM酷库048中,我们介绍了可以将JSON数据导出为csv文件的库:json2csv,今天,今天我们再来了解如何解析、导入一个csv文件。

NPM酷库048:json2csv,导出csv文件

2018-02-21
阅读 1 分钟
10.6k
NPM酷库,每天两分钟,了解一个流行NPM库。· 在做数据管理类应用时,尤其是管理后台,经常需要将数据导出为CSV文件,方便在Excel中离线打开查看。 json2csv json2csv是一款用于将JSON数据转换成CSV格式文件的库。 {代码...} 参考资料 [链接]

NPM酷库047:ini,解析INI配置文件

2018-02-21
阅读 1 分钟
7.3k
最近几期我们都在研究各种数据文件类型,包括JSON5、YAML、CSON等,相对于JSON,这些格式能够更加易于人类编写和理解,所以更适合做配置文件,今天我们继续学习如何解析Windows系统上常用的*.ini配置文件。

NPM酷库046:cson-parser,解析CSON数据

2018-02-21
阅读 1 分钟
3.1k
前两期我们分别介绍了JSON5和YAML,这两种数据格式相对于JSON,更加易于人类编写和理解,今天我们继续介绍另外一个容易编写的格式 CSON。

NPM酷库045:js-yaml,读写YAML

2018-02-21
阅读 2 分钟
12.7k
在NPM酷库044中,我们了解到了相对于JSON格式更加易于编写和维护的JSON5,今天我们继续学习另外一个更加简单易读的数据格式YAML。

NPM酷库044:json5,更可读的JSON

2018-02-21
阅读 2 分钟
6.2k
JSON是JS中数据交换时最常用的数据格式,其序列话和反序列化性能非常好,但是其语法却比较严格,比如以下是一个合法的JS声明,却不是一个合法的JSON:

NPM酷库043:joi,语义化模式验证

2018-02-21
阅读 1 分钟
4.2k
注意:joi并非是JSON Schema标准的实现,另外,使用ajv验证JSON Schema可以将模式配置信息保存在.json文件中,因为JSON Schema模式是声明式的,而joi则必须在代码文件中实现模式配置,因为joi的语义化必须以函数调用来实现。

NPM酷库042:ajv,JSON 模式验证

2018-02-11
阅读 2 分钟
13.7k
在NPM酷库041中,我们学习了如何用validator库来验证字符串是否是Email、URL等,在开发中,除了字符串,我们还需要对更复杂的数据进行验证。比如需要Object满足那些属性,每个属性都是什么类型的,这些条件称之为数据模式验证。

NPM酷库041:validator,验证工具集合

2018-02-11
阅读 3 分钟
6.1k
在开发过程中,我们经常需要对用户输入数据进行各种验证,比如判断Email格式是否合法、判断URL是否合法等,我们可以找来不同的NPM包来针对不同数据进行验证,今天我们介绍一个验证工具的集合包:validator,它包含了非常多的常用验证器。

NPM酷库040:jschardet,识别数据编码

2018-02-09
阅读 1 分钟
8.2k
在NPM酷库039中,我们认识到了iconv-lite库可以转换任意的字符编码到JavaScript内置的Unicode编码,以便于我们的程序和外部系统友好对接。但是如果我们不知道外部数据的编码,那么我们也就无法调用iconv-lite来进行转换。

NPM酷库039:iconv-lite,字符串编码转换

2018-02-09
阅读 1 分钟
8.5k
我们的程序与外部系统对接时,输入输出的数据经常需要做编码转换,因为JavaScript采用的编码是Unicode,而外部系统的数据编码可能是多种多样的,比如Windows上的汉字编码使用的是GBK。

NPM酷库:intl-messageformat,多语言处理

2018-02-07
阅读 1 分钟
5.8k
在开发多国语言的项目时,为了给不同国家用户显示不同语言,我们一般会为每个语言分别建立一个Map映射,在界面上依据当前语言环境不同而输出不同语言库的字符串。

NPM酷库:netmask,网络掩码计算

2018-02-07
阅读 1 分钟
5.7k
NPM酷库,每天两分钟,了解一个流行NPM库。· 昨天我们了解到ip库用来做IP地址计算处理,在脉冲云的集群管理中,我们使用了另外一个和网络地址相关的库:netmask,用来计算网络掩码。 通过netmask,我们可以获取一个子网段的网络掩码、子网起始IP和结束IP,还可以判断一个IP是否属于该子网。 {代码...} 参考资料 [链接]

NPM酷库:ip,IP地址处理

2018-02-07
阅读 2 分钟
6.2k
NPM酷库,每天两分钟,了解一个流行NPM库。· 今天我们来了解一个专门用来处理IP地址的库:ip,ip库能够获取本机IP地址、比较、转换、掩码/子网计算等各种和网络IP相关的操作: {代码...} 参考资料 [链接]

NPM酷库:accounting,格式化数字和货币

2018-02-07
阅读 1 分钟
6.7k
accounting 主要提供的方法有 formatMoney() formatColumn() formatNumber() toFixed() unformat()接下来我们一一介绍:

NPM酷库:numeral,格式化数字

2018-02-03
阅读 1 分钟
12.3k
JavaScript Core 并没有提供足够的数字变量格式化方式,而我们经常需要这样的操作,比如给数字加单位等,虽然需求简单,但是写起来还是要费一些周折。

NPM酷库:moment,时间对象处理

2018-02-03
阅读 1 分钟
2.6k
NPM酷库,每天两分钟,了解一个流行NPM库。· 上次,我们介绍了使用 dateformat 库将时间对象格式化为任意规则字符串,在实际开发中,我们不仅仅需要格式化时间。 moment moment 是专门用来处理时间的库,可以用来格式化、验证、比较、计算、解析时间。 {代码...} 上述代码仅仅是moment库的一些示例,moment支持的操作有...

NPM酷库:dateformat 时间字符串格式化

2018-02-01
阅读 1 分钟
6.5k
NPM酷库,每天两分钟,了解一个流行NPM库。 JavaScript中Date内置对象的toString() 方法可以将时间对象转换为字符串,但是转换后的格式是这个样子的: {代码...} 我们在UI上显示这样的时间字符串无论对于用户阅读或是布局要求,都是不行的。我们常常需要特定格式的字符串来表示时间: {代码...} 如果使用JS内置Date对象...

NPM酷库:async 强大的异步任务控制

2018-01-31
阅读 1 分钟
8.7k
今天要了解的库叫async,与ES7标准的async/await关键字不同,这里说的async只是NPM的一个库,为了区别,下文中今天的主角叫async库,async/await的关键字叫async函数。

NPM酷库:pify 将异步函数Promise化

2018-01-30
阅读 1 分钟
5.5k
所有Node.js标准库和很多第三方库提供的接口都是callback样式的,在ES7标准时代,使用async/await配合Promise才是最佳实践。

NPM酷库:bluebird Promise工具库

2018-01-29
阅读 1 分钟
3.7k
昨天我们了解了增强版Promise库:q。q库实现了比ES2015标准更多的Promise方法,今天我们继续学习另一个功能强大的Promise工具库:bluebird。

NPM酷库:q 增强版Promise

2018-01-28
阅读 1 分钟
3.1k
昨天我们了解了如何使用Promise管理异步任务,但是ES2015标准的Promise对象实现的接口非常有限,只包含 Promise.all() Promise.race() promise.then() promise.catch() ,这些接口在实际使用中是不够用的,比如我们没办法直接判断一个Promise对象是否已经完成。

NPM酷库:promise 异步任务状态管理

2018-01-28
阅读 2 分钟
2.1k
JavaScript的优势就在于其基于异步事件模型,从而Node.js能够拥有非常强大的性能表现。但是,JavaScript的callback方式做异步处理,多层级情况下对人而言简直是噩梦,故而称之为回调地域:

NPM酷库:split 按行读取文本流

2018-01-28
阅读 1 分钟
2.2k
我们昨天说到,使用数据流,可以分批读取数据到内存,而不用将文件一次性读取到内存。比如一个非常大文本文件,每一行是一条数据,我们可以每次读取一行,进行处理。

NPM酷库:through 快速创建双向流

2018-01-25
阅读 2 分钟
2.8k
做下载等功能时候,我们经常会使用数据流模块(stream),因为,在大文件下载场景下,如果使用fs.readFile()接口将文件全部读入内存然后再返回给客户端,很容易撑爆内存,比如一个文件200M,同时有100人在下载,那么服务就需要占用10G 内存。

NPM酷库:semver 语义化版本判断

2018-01-24
阅读 1 分钟
6.2k
软件的命运就是不断维护、更新、迭代,所以我们用版本号来区分一个软件的不同时期和形态,版本号的命名方式有各种各样,有的以小数表示(几点几),有的以日期表示,有的以代码提交Hash表示等等。

NPM酷库:classnames 快速组合CSS类

2018-01-23
阅读 1 分钟
6.5k
在上述代码中,我们需要判断active变量来控制生成的按钮的CSS样式是否是激活状态,在实际开发中,可能会有更多的类似这样的样式控制逻辑,从而干扰阅读业务逻辑代码,使得代码变得很“脏”。