Node.js
清觞煮雪
这个作者很懒,什么都没留下…
展开
-
【深入浅出Node.js系列一】什么是Node.js
1 从名字说起有关Node.js的技术报道越来越多,Node.js的写法也是五花八门,有写成 NodeJS的,有写成Nodejs的,到底哪一种写法最标准呢,我们不妨遵循官方的说法。在Node.js的官方网站上,一直将其项目称之为”Node“或者”Node.js“, 没有发现其他的说法,”Node“用的最多,考虑到Node这个单词的意思和用途太广泛,容易让开发人员误解,我们采用了第二种称呼——”转载 2016-05-26 16:43:21 · 1264 阅读 · 0 评论 -
【深入浅出Node.js系列十五】Nodejs实现websocket的4种方式
WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在WebSocket API中,浏览器和服务器只需要要做一个握手(handshaking)的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。WebSocket是一个通信的协议,分为服务器和客户端。服务器放在后台,保持与客户端的长连接,完成双方通信的任务。客户端一般都是实转载 2016-05-27 16:41:02 · 3694 阅读 · 0 评论 -
【深入浅出Node.js系列十四】Nodejs异步流程控制Async
“流程控制”本来是件比较简单的事,但是由于Nodejs的异步架构的实现方法,对于需要同步的业务逻辑,实现起来就比较麻烦。嵌套3-4层,代码就会变得的支离破碎了!今天就遇到了一个业务逻辑,连续对数据库操作,前后有依赖。让我们看看Async是如何解决问题的。1 Async介绍Async是一个流程控制工具包,提供了直接而强大的异步功能。基于Javascript为Node.js设计,同转载 2016-05-27 16:40:23 · 2510 阅读 · 0 评论 -
【深入浅出Node.js系列十三】用Nodejs连接MySQL
1 node-mysql介绍felixge/node-mysql是一个纯nodejs的用javascript实现的一个MySQL客户端程序。felixge/node-mysql封装了Nodejs对MySQL的基本操作,100% MIT公共许可证。项目地址:https://github.com/felixge/node-mysql2 建立MySQL测试库本地创建M转载 2016-05-27 16:39:40 · 566 阅读 · 0 评论 -
【深入浅出Node.js系列十二】Nodejs日志管理log4js
日志对任何的应用来说都是至关重要的。在Nodejs中使用express框架并没有自带的日志模块,我们可以选择log4js来完成日志记录的功能。如果用过JAVA中log4j的同学,肯定对日志并不陌生,学习log4js会更得心应手的。1 默认的控制台输出我们使用express框架时,开发模式用node或者supervisor启动nodejs应用时,控制台都是显示如下的日志。GE转载 2016-05-27 16:39:01 · 716 阅读 · 0 评论 -
【深入浅出Node.js系列十一】Node.js开发框架Express4.x
1 建立项目让我们从头开始Express4.x的安装和使用吧,安装Node和NPM在本文就不多说了。Linux环境安装请参考文章,Node.js&NPM的安装与配置,Window环境安装直接下载Node的安装文件,双击安装就行了。首先,我们需要安装express库。在Express3.6.x之前的版本,Express需要全局安装的,项目构建器模块是合并在Express项目中的,后来转载 2016-05-27 16:38:10 · 1218 阅读 · 0 评论 -
【深入浅出Node.js系列十】一个简单的静态文件合并服务器
1 需求我们要开发的是一个简单的静态文件合并服务器,该服务器需要支持类似以下格式的JS或CSS文件合并请求。http://assets.example.com/foo/??bar.js,baz.js在以上URL中,??是一个分隔符,之前是需要合并的多个文件的URL的公共部分,之后是使用,分隔的差异部分。因此服务器处理这个URL时,返回的是以下两个文件按顺序合并后的内容。/转载 2016-05-27 16:34:40 · 755 阅读 · 1 评论 -
【深入浅出Node.js系列九】一起撸Node.js
1 基本语法Node.js 的基础是 JavaScript 这门 脚本语言。而大多数的脚本语言一个共同的特点就是“弱类型”。不同于 PHP 的是,PHP 就是是有了新变量也无需申明,而 JavaScript 则还是需要 var 来申明一下的。而这个 var 涵盖了 C++ 中的int、string、char等一切类型的含义,甚至是 function。1.1 变量声明转载 2016-05-27 16:33:49 · 16907 阅读 · 0 评论 -
【深入浅出Node.js系列八】一个基于Node.js完整的Web应用实战
1 Web用例我们来把目标设定得简单点,不过也要够实际才行:用户可以通过浏览器使用我们的应用。当用户请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单。用户可以选择一个图片并提交表单,随后文件将被上传到http://domain/upload,该页面完成上传后会把图片显示在页面上。差不多了,你现在也可以去Google一下,找点转载 2016-05-26 17:42:51 · 3334 阅读 · 1 评论 -
【深入浅出Node.js系列七】Connect模块解析
1 Connect模块背景Node.js的愿望是成为一个能构建高速,可伸缩的网络应用的平台,它本身具有基于事件,异步,非阻塞,回调等特性,正是基于这样的一些特性,Node.js平台上的Web框架也具有不同于其他平台的一些特性,其中Connect是众多Web框架中的佼佼者。Connect在它的官方介绍中,它是Node的一个中间件框架。超过18个捆绑的中间件和一些精选第三方中间件。尽管Conn转载 2016-05-26 17:37:35 · 3236 阅读 · 0 评论 -
【深入浅出Node.js系列六】Buffer那些事儿
Javascript是为浏览器而设计的,能很好的处理unicode编码的字符串,但对于二进制或非unicode编码的数据就显得无能为力。Node.js继承Javascript的语言特性,同时又扩展了Javascript语言,为二进制的数据处理提供了Buffer类,让Node.js可以像其他程序语言一样,能处理各种类型的数据了。1 Buffer介绍在Node.js中,Buffer类是随N转载 2016-05-26 17:34:18 · 1123 阅读 · 0 评论 -
【深入浅出Node.js系列五】初探Node.js的异步I/O实现
之前介绍了Node.js的事件机制, 也许读者对此尚会觉得意犹未尽,因为仅仅只是简单的事件机制,并不能道尽Node.js的神奇。如果Node.js是一盘别开生面的磁带,那么事件与异步分别是其A面和B面,它们共同组成了Node.js的别样之处。本文将翻转Node.js到B面,与你共同聆听。Node更擅长处理体积小的请求以及基于事件的I/O。1 异步I/O在操作系统中,程序运行的空间分转载 2016-05-26 17:31:07 · 752 阅读 · 0 评论 -
【深入浅出Node.js系列四】Node.js的事件机制
在目前的web应用中,客户端和服务器端之间有些交互可以认为是基于事件的,那么AJAX就是页面及时响应的关键。每次发送一个请求时(不管请求的数据多么小),都会在网络里走一个来回。服务器必须针对这个请求作出响应,通常是开辟一个新的进程。那么越多用户访问这个页面,所发起的请求个数就会越来越多,就会出现内存溢出、逻辑交错带来的冲突、网络瘫痪、系统崩溃这些问题。Node和操作系统有一种约定,如果创建了新转载 2016-05-26 17:18:27 · 604 阅读 · 0 评论 -
【深入浅出Node.js系列三】深入Node.js的模块机制
1 Node.js模块的实现之前在网上查阅了许多介绍Node.js的文章,可惜对于Node.js的模块机制大都着墨不多。在后续介绍模块的使用之前,我认为有必要深入一下Node.js的模块机制。1.1 CommonJS规范早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物。无奈那时服务端JavaScript走的路均是参考众多服务器端语转载 2016-05-26 16:50:48 · 3260 阅读 · 0 评论 -
【深入浅出Node.js系列二】Node.js&NPM的安装与配置
1 Node.js安装与配置1.1 Windows平台下的Node.js安装在过去,Node.js一直不支持在Windows平台下原生编译,需要借助Cygwin或 MinGW来模拟POSIX系统,才能编译安装。幸运的是2011年6月微软开始与Joyent合作移植Node.js到Windows平台上 (http://www.infoq.com/cn/news/2011/06/node-e转载 2016-05-26 16:46:25 · 6308 阅读 · 0 评论 -
【深入浅出Node.js系列十六】grunt让Nodejs规范起来
一个应用开发到一定阶段,普遍会遇到一个问题。当功能越来越多,代码量越来越大,bug修复越来越频繁,开发人员一波一波的交替,…..应该用会向着越来越不可控发展。我们不能再准确估计新功能的开发时间,也不知道一个bug修复后是否会引发另一个bug出现。所有的程序开发,都会面临着这样的问题。C/C++程序通过makefile管理编译测试打包的过程,Java程序通过Maven,Ant实现项目构建管理转载 2016-05-27 16:42:10 · 978 阅读 · 0 评论