Node.js 的组成
Node.js是由ECMAScript及Node 环境提供的一些附加API组成的,包括文件、网络、路径等等一些更加强大的 API。(ECMAScript + Node模块API)
命令行窗口
1. 常用指令
dir 列出当前目录下面的所有文件
cd 目录名 进入到指定的目录
md 目录名 创建一个文件夹
rd 目录名 删除一个文件夹
文件名.后缀名 打开文件
D: 进入D盘
2.目录
. 表示当前目录
.. 表示上一级目录
Node
Node是对ES标准的一种实现,Node也是一个JS引擎。通过Node可以使js代码再服务器端运行。Node仅仅对ES标准进行了实现,所以在Node中不包含DOM 和 BOM
Node中可以使用ES所有的内建对象
(1) String Number Boolean Math Date RegExp Function Object Array
(2) 可以使用 console 也可以使用定时器(setTimeout() setInterval())
Node 可以在后台来编写服务器
Node编写服务器都是单线程的服务器
(1) 进程就是一个一个的工作计划(工厂中的车间)
(2) 线程是计算机最小的运算单位(工厂中的工人)
(3) 线程是干活的
传统的服务器都是多线程的
(1) 每进来一个请求,就创建一个线程去处理请求
Node的服务器是单线程的
(1) Node处理请求时是单线程,但是在后台拥有一个I/O线程池
运行:node XXX.js运行
模块化
将一个完整的程序分成一个一个小的程序,降低耦合度,方便代码的复用。
在node中,一个js文件就是一个模块。
在node中,每一个js文件中的js代码 都是独立运行在一个函数中
(function(){
....
})()
而不是全局作用域,所以一个模块中的变量和函数在其他模块中无法访问。
我们可以通过 exports 来向外部暴露变量和方法,只需要将需要暴露给外部的变量或方法设置为exports的属性即可。
exports.x = 100
exports.fn = function(){}
Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到。
模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。
引入其他的模块
在node中,通过require()函数来引入外部的模块。require() 可以传递一个文件的路径作为参数,node将会自动根据该路径来引入外部模块。这里路径,如果使用相对路径,必须以.或..开头。使用require()引入模块以后,该函数会返回一个对象,这个对象代表的是引入的模块。