您的位置:首页 > Web前端 > Node.js

Node.js知识点学习

2017-05-28 20:37 253 查看

Node.js知识点学习


一、基本概念


Node.js
,或者 Node,是一个可以让
JavaScript
运行在服务器端的平台。可以说,
Node.js
开创了
javascript
模块化开发的先河,早期的
javascript
需求都很简单,基本都是写成函数的,然后是面向过程的写法,后来慢慢的引入面向对象开发思想,再后来就慢慢写成 类。最后node.js的出现才开始有了js模块化开发的概念,这使得臃肿的
js
代码免去了命名冲突等一系列开发难题。

Node
最大的特点就是采用了异步式
I/O
与事件驱动的架构设计。
Node.js
是一个让js运行在浏览器外的平台。其最初目标是实现事件驱动,非阻塞
I/O
的web服务器。

Node.js
只是一个
JavaScript
的运行环境(或者说是一组库), 为标准
js
补充了有关异步 IO, 即读写网络和文件的功能。 一个库嘛,无非是调调 API 什么的,除了略反人类的事件回调之外,和其他后端语言(PHP, Python)也差不了多少。

Node.js
使用的是单线程模式,每一个线程完成一个功能,一个进程可以有多个线程,对于所有的I/O都采用异步式的请求方式。每个异步式I/O请求完成后都会被推送到事件队列,等待程序进程进行处理。

总之,
node
的核心思想就是:非阻塞,单线程和事件驱动。(同步对应的是阻塞,异步对应的是非阻塞)

ebay选择
Node.js
的理由,可以归纳为以下4点:

动态语言:开发效率非常高,并有能力构建复杂系统,如ql.io。
性能和I/O负载:Nodejs非常好的解决了IO密集的问题,通过异步IO来实现。
连接的内存开销:每个Node.js进程可以支持超过12万活跃的连接,每个连接消耗大约2K的内存。
操作性:实现了Nodejs对于内存堆栈的监控系统。

Node.JS
架构示意图



Node.js可以做什么?

Web开发:Express + EJS + Mongoose/MySQL

express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站。
Express框架建立在Nodejs内置的Http模块上,并对Http模块再包装,从而实际Web请求处理的功能。

ejs是一个嵌入的Javascript模板引擎,通过编译生成HTML的代码。

mongoose 是MongoDB的对象模型工具,通过Mongoose框架,可以进行访问MongoDB的操作。

mysql 是连接MySQL数据库的通信API,可以进行访问MySQL的操作。

通常用
Node.js
做Web开发,需要3个框架配合使用,就像Java中的SSH。

Web聊天室(IM):Express + Socket.io

socket.io
一个是基于Nodejs架构体系的,支持
websocket
的协议用于时时通信的一个软件包。
socket.io
给跨浏览器构建实时应用提供了完整的封装,
socket.io
完全由
javascript
实现。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: