true

nodejs部署方式-pm2(一)

目前Nodejs开发中有很多痛点,其中有一个是修改完代码以后需要我们重启服务才能看到效果。这样一次次的杀进程、重启,杀进程、重启很让人头大。程序员是最痛恨重复工作的物种,之前有了解过的同学可能知道forever。forever可以帮我们解决上面的问题,通过对资源变化的检测做到变化后自动重启。开发阶段我们使用node file.js来启动另外由于Nodejs的单线程,任何异常都会导致整个服务中断,这对于生产上长时间提供服务的程序来讲是不可以的,forever可以帮我们在异常后重启,保证服务一直在线,我想这也就是它名字的由来吧。但我想说的是forever不够“高!大!上!”。接下来我要介绍一个足够高大上的神器–pm2。 简介 pm2=P(rocess) M(anager)2,是可以用于生产环境的Nodejs的进程管理工具,并且它内置一个负载均衡。它不仅可以保证服务不会中断一直在线,并且提供0秒reload功能,还有其他一系列进程管理、监控功能。并且使用起来非常简单。下面我将把我的使用过程分享出来,Nodejs应用是一个基于Express 4.x的应用,名称是Wolverine。     继续阅读
Pang Jian's avatar
Pang Jian 12月 02, 2016
 | 

使用CNPM搭建私有NPM仓库

我们在使用Nodejs的时候,使用npm仓库来发布和管理模块,我们可以从npm上下载别人发布的模块使用,也可以自己发布模块,有点类似于Maven,这是非常流行的开源社区模式。但是在企业内部,我们不希望我们的生产代码可以随意引用任何未经企业审核的代码;我们也不希望企业内部自己的模块发布给任意人员使用;还有一个重要的原因是很多企业内部无法连接互联网cnpm就是来解决这些问题的。官方的解释是cnpm=Company npm 环境配置 OS:Red Hat Enterprise Linux Server release 6.4 (Santiago) node:v4.4.5 npm:2.15.5 cnpm:2.10.0(截止到本文发布)     继续阅读
Pang Jian's avatar
Pang Jian 6月 01, 2016
 | 

使用travis-ci持续集成Hexo静态博客

Hexo是一个基于Nodejs的轻量级静态博客生成框架。静态博客生成程序会将我们所写的博客生成为一套HTML+CSS+JavaScript代码,我们将这个代码部署到诸如Github Page这样的地方就可以在世界任何一个地方访问我们的博客了。这种方案有一个非常有利的优点–免费。但是,hexo环境不是处处都有,换个地方写作变成了一件麻烦事。而且写完文章以后需要hexo g,hexo d等一系列操作,着实很麻烦。本篇文章利用Travis CI解决以上痛点。     继续阅读
Pang Jian's avatar
Pang Jian 5月 25, 2016
 | 

浏览器缓存知识归纳

写在开头:这篇文章是打算分享到单位内部的材料。归纳浏览器缓存也是对一个生产问题的分析总结出来的。这片文章经过脱敏以后发表到个人博客上面吧。 浏览器缓存(Browser Catching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。 —-摘自《百度百科》 浏览器缓存是提升网页性能的一大利器,但是,也是一把双刃剑。利用的好网页的性能会有大幅度提升,服务器的压力也会减小。利用的不好,也会遇到很多的问题。本文结合浏览器缓存的知识,结合真实案例进行分析,希望对读者有所帮助。     继续阅读
Pang Jian's avatar
Pang Jian 3月 05, 2016
 | 

2016年,猴年快乐!

2016年新年,祝愿所有人新年快乐,猴年吉祥。 <...     继续阅读
Pang Jian's avatar
Pang Jian 2月 07, 2016
 | 

我遇到一个Bug,金额大于一千万就报错

这是一个在测试环境发现的一个BUG,感觉很有趣,便写出来分享一下。本文的灵感以及标题都来自于《我遇到一个BUG,每逢周三就崩溃》。我在银行做系统开发,“金额”基本上是最常见的字段,也是最不能出错的字段了。每一个错误都代表着实打实的资金损失,无论是客户的还是银行的。所以,作为开发人员,对这个字段也相对敏感一些。金额这个字段的规则也相对其他字段更复杂一些。举个例子来说,金额是一个数字,可以是这样12;当然也有小数点的情况,比如这样12.34;人们还有这样的习惯,每隔3位有一个逗号分隔符,比如这样1,000.23。可是一千万是个什么特殊情况,为什么会有问题呢?     继续阅读
Pang Jian's avatar
Pang Jian 1月 13, 2016
 | 

使用Pjax优化你的网站

Ajax(Asynchronous Javascript and XML)的魅力在于它的每一个成员都不是新技术,经过奇妙的结合却掀起了WEB2.0的革命。Pjax是pushState和ajax的封装,同样每一个都算不上新技术,结合起来却有着神奇的效果。     继续阅读
Pang Jian's avatar
Pang Jian 12月 03, 2015
 | 

javascript前后端代码复用-browserify

Nodejs将javascript带上了一个新的高度,让之运行于浏览器端的javascript可以运行在服务器端。但是Nodejs遵循Commonjs规范,不能直接运行在浏览器端。虽然是同一种语言,但是前后端有着自己的库,不能复用真是一种浪费。这时候一个神器出现了,Browserify。通过预编译,可以将Commonjs规范的后端Nodejs代码直接可以运行在浏览器端。打通了端后端代码复用的壁垒,为nodejs程序开辟了一片新天地。     继续阅读
Pang Jian's avatar
Pang Jian 11月 18, 2015
 | 

Jackson中的那些坑

不符合驼峰规范的变量 “驼峰命名法”请自行百度。简单的来说就是变量的第一个单词以小写字母开始其他单词首字母大写,或者全部单词首字母都大写,分别称为“小驼峰”和“大驼峰”     继续阅读
Pang Jian's avatar
Pang Jian 10月 30, 2015
 | 

近期想法汇总2015年9月

打算新开一类主题,主要用来记录近期的一些想法,有想好了要做的事情,也有要做但是还没有思路的事情。类似LifeHacker那样,不仅仅有编程相关。可以有技术、科技、设计、生活想法等等,如果时机成熟,这一个个的点子实践以后会形成一片单独的文章,如果我一直没有想法,看到这篇文章的人也可以在评论里帮我出出主意。这篇文字是第一次尝试。     继续阅读
Pang Jian's avatar
Pang Jian 9月 15, 2015
 | 

JSON与Java对象的事

很久没有写了,来清理一下杂草。这片文字是团队内其他小伙伴经常混淆的一个知识点,最初的目的是写个东西好让大家用到的时候可查,由于原文涉及公司的一个框架,不便写出来。该框架其实引用的开源框架Jackson,所以本文直接介绍Jackson部分。其实说不上介绍,约等于一个学习笔记。     继续阅读
Pang Jian's avatar
Pang Jian 9月 12, 2015
 | 

升级Hexo2.X到3.0

我一般不想转或者写别人写过的一些东西,但是今天这篇文章算是转的,完全记录了我升级hexo的过程。为什么呢?实在是觊觎了很久了,一直没敢动手,3.0版本可是个大手术,据说好多主题和插件都挂了,现在这个主题我修改了不少,怕万一出个什么问题很麻烦。仅以此文来记录这次没什么意外地升级。 Hexo3.0新特性 新的命令行工具:hexo-cli 更轻量级的核心模块:generators,deployers和server都从主模块中分离出来了 新的generator Api 支持时区 更多     继续阅读
Pang Jian's avatar
Pang Jian 4月 11, 2015
 | 

使用Swiftype为静态博客添加站内搜索

为网站、App提供站内搜索的Swiftype获1300万美元B轮融资。Swiftype可以为网站及移动App提供内置搜索引擎服务,搜索服务的部署非常简单,只需要插入一行JS代码即可搞定。于Google相比,高度可定制化是它的优势。来自:36Kr     继续阅读
Pang Jian's avatar
Pang Jian 3月 24, 2015
 | 

不用cookie我也能追踪你!

抱歉起了这么个“吸引人的”标题,但我不是标题党。最近由于工作上的一些事情,涉及到识别、追踪设备的项目来了几个,从一篇论文《The Web Never Forgets》无意间又发现了这个技术。查阅了一些资料。做了个小Demo应用到了本博客上。对!你没听错,本页面在追踪你。不过也没那么可怕。看看本站的Visitor Info模块,它可能在屏幕右侧也可能在最底下。这个模块会知道你是否之前访问过本站,并且结合了上一篇博文基于Firebase的Hexo博客实时访问数统计中提到的访问数统计,做到了记录每一位访问者的访问次数。即使你关闭了cookie。^ _ ^     继续阅读
Pang Jian's avatar
Pang Jian 3月 09, 2015
 | 

基于Firebase的Hexo博客实时访问数统计

本来想写一个HEXO的搭建过程的,但是在搜索引擎上一搜一大把教程。看到有人评论:“你写这个跟HEXO官方的教程比好在哪?”仔细想想,说的极好。索性也就不写这个人家已经写烂了的东西了。附一个官方教程链接。其实在搭建过程中还参考了一个很全面很详细的博客,也附上链接吧,ibruce不如。对于像HEXO这种静态博客来讲,想要做到一些动态的功能就必须得靠第三方支持,比如评论可以使用多说、Disqus。虽然我的blog的访问人数少的可怜,但是我还是希望知道有多少访问量的。于是乎发现了FireBase这个神奇的东西,它是一个制作实时应用的框架,用它来统计访问量绰绰有余啦。它可以做到的就像本博客下面的一样,你可以尝试开启两个本博客窗口,然后刷新其中一个,看看另外一个页面,是不是很神奇?另一个页面的访问量也实时增加了!     继续阅读
Pang Jian's avatar
Pang Jian 2月 27, 2015
 | 

第一篇blog

博客开张啦,这是我的第一篇博客,基于Hexo搭建...     继续阅读
Pang Jian's avatar
Pang Jian 2月 17, 2015
 |