酒浓码浓 - node.js

node.js

2009年,Ryan正式推出了

基于JavaScript语言,V8引擎的开源Web服务器项目——Node.js

 

为什么要用Node?

很多开发都迷惑,为什么要用Node?在实际项目中貌似也就是启个服务,做个前后分离,还做了什么呢?

谈谈个人看法:

node虽是服务端,但友好的JS语法让前端开发者学习成本比较低,也是在前端火起来的原因之一吧。

node像浏览器一样提供了执行环境可以玩耍。服务端语言都有读写文件的能力,一些API会建立你的后端语言的能力,也对整体架构的建设有了概念。

如果你用node做中间层,他就像个宿主环境,就像个容器包裹你的项目。你可以在中间层里去进行路由的操作,服务端渲染,ip的抓取,掌控客户端页面进入权限,等等细节的功能,在这个空间做你想做的事与客户端分离让你的项目更加清晰。配合运维做基础建设生产环境也可以快速定位node服务报错。

如果你的网站有很多媒介音视频图片的使用,node对流式传输也体现出了性能优势。

 

Node优势?

1. JavaScript 是异步(非阻塞式)I/O ( 高并发 ) 事件驱动,使Node轻量又高效。

I / O(Input/Output)通常是指计算机线程进行磁盘读写或者网络通信时的一种行为。

同步式:多个线程完成多个任务。

计算机执行命令,调度线程操作,操作完成后命令下一 线程操作。

异步式:一个线程完成多个任务。

计算机执行命令,调度线程操作,命令下达后命令下一 线程操作。

(当I/O操作完成后,会通过事件(event ) 通知I/O线程,而线程在接收到通知后,会处理响应事件)

2. JavaScript 可以使用ECMAScript等,在开发上提升了效率  。

3. Node.js 的包管理器 npm,世界上最大的开放源代码的生态系统。

4. Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API,如:文件读写,进程管理,网络通信等。

5. Node.js 可以编写独立的服务端应用,也可以向客户端提供Web内容,无需借助任何Web服务器(apache)可以去连接文件系统,还能操作数据库。

Node.js 适合开发中间服务器,可伸缩的网路应用,数据写入读取的应用比较好

 

Node劣势?

Node.js 不适合CPU密集型的应用,各种计算的就不太适合

 

安装Node

LTS指的是long time support 也就是长期支持版本,推荐大家安装

Current是现在最新的版本。

一般来说,偶数位为稳定版本,奇数位为非稳定版本

这块就自行去官网node下载安装吧,就不多解释了。

 

包管理工具和模块

npm的使用

nodeJs使用CommonJs规范,,不会有命名冲突、依赖关系等等的问题。

按照规范来定义模块,暴露接口,引用模块,使用模块

 

模式

命令行模式和Node交互模式(REPL模式)

在命令行模式下,可以执行node进入Node交互式环境。

REPL模式可以执行JavaScript代码。

chrome浏览器的V8引擎console控制台里可以运行js代码,其实这里就是node的V8引擎解析js代码的情况。

浏览器有BOM和DOM对象,在node里是没有的,也就是没有window等相关的对象。

同样在node端有global,process等全局对象,浏览器段却没有

在命令行模式下,可以执行node 1.js 启动服务

 

搭建第一个node服务器

在项目文件夹中的1.js文件中写如下代码

命令行启动服务,浏览器输入地址,OK启动成功

 

其他模块:

fs: node之fs

stream: node之stream

http: node之http

url: node之url

path: node之path

crypto: node之crypto

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章