1 什么是Node.js?
Node.js是一个能够在服务器端运行的JavaScript的开放源代码 跨平台的JavaScript运行环境.Node.js采用Google开发的V8运行代码,使用时间驱动,非阻塞和异步输入输出模型等技术来提高性能,可以优化应用程序的传输量和规模.
Node.js大部分基本模块都是用JavaScript语言编写的.在Node.js之前,JavaScript通常作为客户端程序设计语言使用,以JavaScript写出的程序在用户的浏览器上运行.Node.js的出现使JavaScript也能用于服务器端变成.其有一系列内置模块,使得程序可以脱离Apache HTTP Server或IIS,作为独立的服务器运行.
2 Node.sj相比其他后端开发语言有何优势?
Node.js最大的优势是借助JavaScript天生的事件驱动机制和V8高性能引擎,使编写高性能Web服务轻而易举.
其次,JavaScript语言本身是完善的函数式语言,在前端开发时,开发人员往往很随意的在使用JavaScript,但是在Node.js环境下,通过模块化的JavaScript,加上函数式编程,并且无需考虑浏览器兼容性问题,直接使用ES6标准,完全可以满足工程商的需求.
3 Node.js概览
Node.js允许通过JavaScript和一系列模块来编写服务器端应用和网络相关的应用。核心模块包括文件系统I/O、网络(HTTP、TCP、UDP、DNS、TLS/SSL等)、二进制数据流、加密算法、数据流等等。Node模块的API形式简单,降低了编程的复杂度.
使用框架可以加速开发。常用的框架有Express.js、Socket.IO和Connect等。Node.js的程序可以在Microsoft Windows、Linux、Unix、Mac OS X等服务器上运行。Node.js也可以使用CoffeeScript(一种旨在简化JavaScript的替代语言,其代码可按照一定规则转化为合法的JavaScript代码)、TypeScript(微软开发的强化了数据类型的JavaScript变体)、Dart语言,以及其他能够编译成JavaScript的语言编程。
Node.js主要用于编写像Web服务器一样的网络应用,这和PHP和Python是类似的。但是Node.js与其他语言最大的不同之处在于,PHP等语言是阻塞的(只有前一条命令执行完毕才会执行后面的命令),而Node.js是非阻塞的(多条命令可以同时被运行,通过回调函数得知命令已结束运行)。
Node.js是事件驱动的。开发者可以在不使用线程的情况下开发出一个能够承载高并发的服务器。其他服务器端语言难以开发高并发应用,而且即使开发出来,性能也不尽人意。Node.js正是在这个前提下被创造出来。Node.js把JavaScript的易学易用和Unix网络编程的强大结合到了一起。
Node.js使用Google V8 JavaScript 引擎,因为:
- V8是基于BSD许可证的开源软件
- V8速度非常快
- V8专注于网络功能,在HTTP、DNS、TCP等方面更加成熟
Node.js已经有数十万模块,它们可以通过一个名为npm的管理器免费下载。
4 Node.js安装
由于Node.js平台是在服务器端运行的JavaScript.所以必须提供其运行的Node环境(类似于JVM).
从Node.js官网或者Node中文网下载下载对应平台的安装程序,网速慢请移步中文网.
安装过程就是一路Next。在安装的过程中,为避免不必要的麻烦,安装目录建议不要包含中文。安装完成之后,在cmd命令行中输入node -v命令来查看Node.js的版本:输入npm -v来查看npm管理器版本。出现版本信息,安装成功.
npm是什么?npm其实是Node.js的包管理工具(package manager)。为什么我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。
更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容易出错。(类似于Maven)
继续在命令提示符输入node
,此刻你将进入Node.js的交互环境。在交互环境下,你可以输入任意JavaScript语句,例如1+2
,回车后将得到输出结果。要退出Node.js环境,连按两次Ctrl+C。
以上控制台命令能正常运行,说明机器已经安装好了Node.js环境.