共计 4 篇文章

当Node.js遇上RabbitMQ

RabbitMQ安装 以Mac安装为例 官网:http://www.rabbitmq.com/ > brew install rabbitmq RabbitMQ启动 启动脚本: > /usr/local/sbin/rabbitmq-server RabbitMQ管理界面 参考:http://www.rabbitmq.com/management.html ...

深入理解Node.js异步流程控制async.auto

为了解决回调嵌套问题,在node.js中有很多方案,Async便是其中之一。 在Async中,最常用的方法,应该就是async.auto了,它能够处理多个函数有依赖关系,有的并行执行,有的顺序执行。与其考虑使用async.series或者async.parallel等其他方法,不如都直接简单粗暴地使用async.auto。 如果你有自己制作过JIRA里的工作流,或者使用过其他流程类工具,那就更加容易理解async.auto的工作原理了。 工作原理 假如我们希望每个函数按如上的流程执行,用async实现如下: const async = require( ...

浮点型精度丢失问题的解决方法

问题 精度丢失的情形,大家肯定都遇到过,比如: 使用excel的时候,单元格运算会出现精度问题。 js控制台输入0.1+0.2,所得的结果就会出现精度问题。 数据库在做汇总计算的时候,得到的结果也会出现精度问题。 那么精度问题是个什么现象呢?如下图: 解决思路 在项目实践中,我们采用的方式是当数据在前端展现时,对数据做一定的处理,使得其结果正确。处理代码如下: function(value, precision) { var result ...

基于CNPM的本地私有库搭建

原因 NPM(Node Package Manager)是一个Nodejs的包管理和分发工具。同时其本身也是一家商业公司。近期发生了一起Left-Pad事件,leftPad这个方法本身其实实现起来非常简单,就短短几行代码,当然考虑到性能最优要写好一个简单的工具方法并不是那么容易的。由于某些原因,导致leftPad这个npm的作者愤怒地unpublish了自己在npm上的所有包,而这个基础包恰恰被很多其他npm依赖着,直接就导致了Babel、ReactNative、Ember等大量工具构建失败,影响十分重大,这必然引起了广大Nodejs开发者的信心。开始质疑这种第三方包的管理方式,比如有人恶意地植入一些垃圾代码等等。 因此,企业内部一般采取搭建本地私有库来维护和管理所用到的依赖库,我们可以直接改造别人的放在内部供自己使用,也不用担心别人会unpublish的他们库导致自己的项目找不到依赖。 CNPM的私有库搭建 ...