一、 认识Node.js
- Node.js 是什么
JavaScript 运行时
既不是语言,也不是框架,它是一个平台。 是JavaScript语言的运行环境
- Node.js 中的 JavaScript
没有 BOM、DOM
EcmaScript 基本的 JavaScript 语言部分
在 Node 中为 JavaScript 提供了一些服务器级别的 API
文件操作
的能力
http 服务
的能力
二、 安装node.js
-
windows
下载node 官网两个版本,一个是LTS(稳定版:项目中) 。一个current(最新版:学习)安装直接
next
就可以
打开cmd命令工具。输入:node --version
ornode -v
出现版本号就说明安装成功 -
Linux 上安装 Node.js
直接使用已编译好的包
Node 官网已经把 linux 下载版本更改为已编译好的版本了,我们可以直接下载解压后使用:
wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz // 下载
tar xf node-v10.9.0-linux-x64.tar.xz // 解压
cd node-v10.9.0-linux-x64/ // 进入解压目录
./bin/node -v // 执行node命令 查看版本
v10.9.0
三、 使用
构建项目 npm init
首先进入项目文件夹。命令行输入
node 文件名.js
。即是运行此文件
示例文件:
//helloword.js
var foo = 'hello nodejs'
console.log(foo)
运行示例:
运行:
node helloword.js
输出:
hello nodejs
在 Node 中,采用 EcmaScript 进行编码
没有 BOM、DOM , 和浏览器中的 JavaScript 不一样
下面使用window、document会报错
。属于未定义
console.log(window)
console.log(document)
四、 模块系统
在 Node 中没有全局作用域的概念
在 Node 中,只能通过 require 方法来加载执行多个 JavaScript 脚本文件
- require 加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题
- 模块完全是封闭的
- 外部无法访问内部
- 内部也无法访问外部】 - 模块作用域固然带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题
- 但是某些情况下,模块与模块是需要进行通信的
- 在每个模块中,都提供了一个对象:
exports
- 该对象默认是一个空对象
- 你要做的就是把需要被外部访问使用的成员手动的挂载到
exports
接口对象中 - 然后谁来
require
这个模块,谁就可以得到模块内部的exports
接口对象 - 还有其它的一些规则,具体后面讲,以及如何在项目中去使用这种编程方式,会通过后面的案例来处理
五、核心模块
- 核心模块是由 Node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如
- fs 文件操作模块
- http 网络服务构建模块
- os 操作系统信息模块
- path 路径处理模块
- …
- 所有核心模块在使用的时候都必须手动的先使用
require
方法来加载,然后才可以使用,例如:var fs = require('fs')