30天了解30种技术系列---(8)终于等到你:Node.js
作为一名Programmer,我喜欢那些能够为时代变革做出贡献的技术。Git,Python,Android。。。都是其中的翘首。(包括我们百度的Echart,都是划时代的产品)。
而对于Web应用开发,我是从JSP那个年代过来的人,依稀记得用这样<%=%>的符号写取值,也依稀记得el表达式这样比较犀利的方式,也记得早年调教一个在JSP里面写满Java代码的程序。
后期开始出现了MVC,正式进入工业化生产模式的开发。网页设计,前端,后端,数据库开发
很多年前,我曾经预见一个JS非常厉害的大哥,同时也可以网页设计开发,当然非常有幸我目前的朋友存在这样的人。
曾经思考,能不能有一个技术可以简化整套的流程,提升性能。有幸的是我们等来了Node.js,一个划时代的产品。
什么是Node.js
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。
Node.js是满足特定场景的,并不是为了取代Java、PHP,Node.js的本质是构建互联网应用。
Node.js 是如何工作的
-
传统的网络服务技术:每个新增一个连接生成一个新的线程,新线程会占用系统内存,最终会占掉所有的可用内存。
-
Node.js 仅仅只运行在一个单线程中,使用非阻塞的异步 I/O 调用,所有连接都由该线程处理,在 libuv 的加分下,可以允许其支持数万并发连接
NPM: The Node Package Manager
NPM 是Node.js包管理引擎,类似于Maven,使用简单。
常见的包:
-
express – Express.js,是一个简洁而灵活的 node.js Web应用框架, 之前有过介绍
-
connect – Connect 是一个 Node.js 的 HTTP 服务拓展框架,提供一个高性能的“插件”集合,以中间件闻名,是 Express 的基础部分之一。
-
socket.io 和 sockjs – 目前服务端最流行的两个 websocket 组件。
-
Jade – 流行的模板引擎之一,并且是 Express.js 的默认模板引擎
-
mongo 和 mongojs – 封装了 MongoDB 的的各种 API,不过笔者平常工作用的是 mongoose 也很推荐。
-
redis – Redis 的客户端函数库.
-
coffee-script – CoffeeScript 编译器,允许开发者使用 Coffee 来编写他们的 Node.js 程序。
-
Gruntjs -- JS的make
Node.js应用举例
服务端 WEB 应用,聊天软件,秒杀等系统
最后来个作者的彩蛋:
Node.js , qq讨论群:275491172
图灵科技保留一切版权,转载请声明来自图灵搜索!
上一篇: 你不是1986和1987,你不懂的。
下一篇: 突然静下心来想写一篇世博观后感