避免uncaughtException错误引起node.js进程崩溃

uncaughtException 未捕获的异常, 当node.js 遇到这个错误,整个进程直接崩溃.或许这俩个人上辈子一定是一对冤家.或许这俩个人经历了前世500次的回眸才换来了今生的相遇,只可惜在错误的时间,错误的地点,做了错误的事!什么是uncaughtExceptionuncaughtException 是一种未捕获的异常,它是node.js 进程上的一个事件,直接挂在 process 上.什么时候会遇到uncaughtException1.当你的程序出错了2.这个错误还没有被 try ... catch 住以上2个条件同时发生时, 说明当前的一个异常会一直冒泡到事件循环为止.然后打印

node-cache 模块 node.js 轻量级缓存管理使用及源码分析

随着前端越来越重,已经不是当年的一个页面配几个第三方js库实现一些花俏的效果,而是出现了各种各样的框架解决方案.当我们项目实现前后端分离时,甚至一些逻辑处理也会放到前端来处理.所以随随便便打开一个页面上百k应该也是正常,甚至更大的页面在考验的前端.但是伴随成长的后端,尤其数存储方面貌似发展缓慢,总有跟不上的赶脚!想当年我们使用关系型数据库,当达到一个瓶颈时,解决起来是不计后果的,读写分离,拆表拆库,做service中间件,然后给中间件负载均衡等等来减轻前端并发造成的后端数据压力.如今的mongodb 做一个分布式貌似轻轻松松, redis 做一层缓存让你有飞一样的感觉.我们终于谈到了缓存.缓存

forever node.js web应用中不可或缺的伟大模块

javascript 一统江湖的势头越来越猛,越来越重的前端,不得不实施前后端分离,angular.js 成功把前端javascript抽象成了一个复杂的MVC框架,注意,它是一个框架,可不是普普通通的插件,或者工具包.另一位兄弟则是跳出浏览器宿主的限制,活跃在了服务器端,大名鼎鼎的 node.js还有一位齐头并进的好哥们 mongodb ,它不仅让你使用熟悉的javascript范围数据库,而且还自己实现了javascript引擎.可能创建 javascript 语言的大牛,看到今天js的发展事态,想必脊梁骨也是阵阵发凉.我们好像扯远了,开题先痛痛快快意淫一把怎能善罢甘休,O(∩_∩)O~由

angular.js 国际化模块 angular-translate 简单方便快捷翻译中英文等多语言环境

很多web服务面对的不仅仅是当地用户,多语言环境不仅能提升逼格,更重要是一种用户体验.angular.js 作为前后端拆分的解决方案之一,当然离不开前端框架处理国际化的问题,angular.js 官方出了一个模块 angular-translate 来解决多语言国际化问题.我们前端采用 bower 包管理工具来管理依赖,点击链接查看bower 使用方法,这里不再详细说明.上面列出的3个模块我们都要用到,一会详细说明:今天和大家分享的内容目录:使用angular-translate 模块的前期准备工作创建过滤器做html页面内容的国际化创建服务做javascript 脚本里的内容国际化使用 an

前端包管理器bower的使用

随着前端项目越来越复杂,随便引入几个第三方javascript脚本库貌似已经习以为常,但是随着越来越多的包被引入,开发人员维护起来也是一件相当头疼的事,比如第三方库的版本更新,安装,卸载等.twitter推出了一个前端包管理器 bower 帮我们解决了这些头疼的事情.bower 完全借鉴了npm构思和实现原理,所以后面你会看到它的使用几乎和npm是一模一样.当然,bower 是运行在node.js 基础上,所以你的当前环境确保已经安装 node.js .bower 的基础功能是什么?1.注册模块每个包需要确定一个唯一的 ID 使得搜索和下载的时候能够正确匹配2.文件存储把文件存储在一个有效的网

angular.js 中的作用域 数据模型 控制器 之 基础篇

一些零散的点,如果读的时候自己能串起来就更好了.1.angular.js 作为后起之秀的前端mvc框架,他于传统的前端框架都不同,我们再也不需要在html中嵌入脚本来操作对象了.它抽象出了数据模型,控制器及视图.成功解耦了应用逻辑,数据模型,视图.2.它的视图也不是后台统一替换后渲染页面,而是视图被动态实时替换.视图上可以通过指定的 angular.js 指令来绑定模型数据.模型数据的变化又会直接影响视图的变化.3.控制器就像一座桥梁,负责连接模型和视图, 模型里包括数据和与数据进行交互的方法.视图只负责把模型数据的映射显示给用户.4.angular.js 会记录数据模型中的数据在任意时间点的

搭建阿里云环境 - 阿里云 centOS 如何安装 node.js

阿里云在国内算得上是非常好的VPS了,我的博客从之前的三天打鱼两天晒网也逐渐走入正轨,购买阿里云请点击这里查看配置(没错,这就是个广告)正好在筹划另外一个站,重新买了另外一个阿里云,所以把搭环境的一些东西和大家分享.本篇分享如何在阿里云 centOS 环境搭建 node.js上面是新vps的配置.第一步:在阿里云管理控制台把服务器启动起来.第二步:ssh 登录服务器 ssh root@你的公网IP第三步:yum 首先更新一下yum-yupdate第四步:centOS 系统下编译源代码的一些开发工具,我们一起安装了.yum-ygroupinstall"DevelopmentTools&

angular.js 下使用 $q 创建一个promise 链式调用

angular.js 下使用$q 创建一个 promose 链式调用.我们在前几天分享了一篇,关于javascript中 promose 规范的博客 (点击查看)现在很多很多的开源javascript库 实现了 promise 规范大名鼎鼎的npm 包 Qgithub地址:https://github.com/kriskowal/q 相仿的在 angular.js 下 $q 是一个小型轻量级的 promise 实现.作者据说是$q是从Kris Kowal的Q中获得灵感从而产生的一个promise/deffered实现我们如何使用$q 定义一个 promise . vargetPersonLis

node.js 和 nginx 配合实现 gzip 压缩,让网站浏览更顺畅

node.js 开发的站点,如果你也是用了nginx实现反向代理.那么在服务端可以轻松实现 gzip 压缩,让站点浏览更顺畅.前提条件: node.js + nginx 反向代理node.js 需要做的工作:express 4.0以下版本:app.use(express.compress());//主要是这句 app.use(express.json()); app.use(express.urlencoded()); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookie

关于一介布衣博客适配pc端,移动端浏览器的一些细节分享

目前还处于人口红利期的移动互联网发展的大红大紫,不断侵蚀传统pc份额,所以做一个全终端自动适配的站点已经成了主流.我的博客也是因为之前对于移动浏览器兼容太差,有些朋友提意见说UI体验也不太好,百度m站的UI亮瞎双眼......所以决定换换UI,因为页面结构大变,已经做好了被搜索引擎惩罚的准备.但是移动端考虑到网络环境,抛开wifi不谈,4G普及率不高,3G应该目前移动端网名主流实用的网络制式,2.5G和2G的用户就悲剧了,站点再优化貌似对这部分人来说加载几十K,几百K甚至上几M都是 wait , wait , wait ,loading....所以3G用户在浏览加载过程中,能节省几百K,加载速

博客准备换套UI

过了一个清明节也没有闲下来,今天新的敏捷开发周期已经迭代开始了,今天晚上想换下博客的UI,明天开始更新博客,赶紧干活去了,祝各位好心情.UI 线下已经搞定,还在细化局部.2015.4.9 中午12点更新!此套UI将自动适应大部分设备,当然我没有全部测试,手机上体验还是不错的.到目前为止,一共换过4套UI每次换UI其实是有一定风险的,对于seo来说,最好一直用一套UI ,所以这段时间我要留意一下所有引擎收录数量及索引量.如果有一天搜索引擎里搜不到我的博客,也许就是被"拔毛了"但是按理说我只是html结构变化,一直都是勤勤恳恳的写内容,应该不会被搜索引擎拔毛.不过影响肯定是有的

分享一个关于redis 的orm框架 node-ron 使用

今天好累....下班去健身房跑步运动,看着这一身肥肉,希望未来的几个月内能有一点改变,健康最重要,大家要多注意身体.开始说正题,成熟的orm框架大部分来自关系型数据库.KV数据库的orm还是比较少的,但是增速很快,支持mongodb的也陆续出来,但是如果你想找一款 redis 的orm真的少的可怜.github地址:https://github.com/wdavidw/node-ron用的人还是不多,作者官网以及测试用例用coffee script 做demo ,实在不感冒.所以我在自己把每个api 测试一把,回头奉上,所以今天的博客注定又是不完整的,现在开始写,争取做一个完整示例来说比较好.

redis 实现事件订阅和发布

redis 中实现了一种消息通信模式, 发布 pub , 订阅 sub .这2个模式看上去是一对一握手状态,其实不然, redis 在实现 消息发布和订阅模块上做了充足的解耦.如何理解:redis 在消息发布的时候,并不是直接发送给所有的消息订阅者,而是发送到了一个频道上 (channel ), 这个频道再做转发,发给所有对这个频道感兴趣的人.发布者可以同时发布多个,订阅者也可以同时订阅多个,并不是一对一的关系.而在整个实现逻辑上和观察者模式非常相似.消息订阅者 sub 就像 观察者.消息发布者 pub 就像一个事件.onmessage 处理函数就像一个事件绑定函数.观察者细致的观察着周围事件

回到顶部