1. 什么是Node
Node.js 是一个基于chrome v8引擎的javascript 运行环境,简单的说 Node.js 就是运行在服务端的 JavaScript。
它的特点是:事件驱动,非阻塞式I/O的模型,轻量和高效,单线程、单进程。
它的作用:Node.js可以用来解析js代码(没有浏览器安全级别的限制)、提供很多系统级别的API、操作文件的读写、进程的管理、网络的通信。
node.js的模块系统,是参照CommonJS规范
实现的。CommonJs规范加载模块是同步的,也就是说,只能加载完成,才能执行后面的操作。由于node.js主要用于服务器编程,模块文件一般都已经存在于本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以CommonJs规范比较适用。
有关CommonJs规范的详细内容,可以点击这里查看。
1.1 node 安装
从官网上下载 node 安装包进行安装,官网下载地址:http://nodejs.cn/download/
如果 Mac 系统的话,也可以通过 brew 命令来安装:brew install node
1.2 对node.js的理解
- node.js中每个文件就是一个模块,不同的文件就是不同的模块;
- 引用模块的语法,使用 require(模块路径);
- 导出语法有两种:一是module.exports,二是exports,使用 module.exports,可以直接导出单一的值,而使用exports ,不能直接导出单一的值;
- 只要导出的变量名称不相同,一个文件可以导出多个内容;
在正式开始学习node之前,我们先来认识一下什么是v8引擎、nvm 和 npm:
2、关于 v8 引擎
- v8 引擎是谷歌开源的一个高性能 JavaScript 引擎
- Google Chrome 浏览器用的就是这个引擎
- 采用 C++ 编写
- V8 可以单独运行,也可以嵌入 C++ 应用当中
- V8 会编译、执行 JavaScript 代码,并一样会管理内存、垃圾回收
- V8 的高性能以及跨平台等特性,所以它也是 Node.js 的 JavaScript 引擎
- JIT 编译出即时机器码,极大提高效率
- 借鉴java vm 垃圾回收,精确垃圾回收
3. node.js和javascript的区别
- node 里没有Dom和Bom对象
- node 可以用 process 查看进程信息,而js 不可以
- js 可以在控制台输出 window 对象,而node 不可以
- node中很多内置模块,js 中都没有
3.1 在命令行中体验node
$ node
,在命令行中输入 node 回车,进入node环境,可以直接编写node代码。
如下图,按ctrl+c,可退出编辑模式。
在浏览器和node中运行 window 和 process对象,
3.2 运行node
编写一个可执行的js文件,命名为app.js
function greeting(){
return “NodeJs”;
}
console.log(greeting());
在命令行中输入 node index.js
,执行代码,结果如下:
3.2.1 nodemon
每次修改完文件后,都需要重启node服务,操作比较麻烦,如果想实现node代码的热更新,实时监测文件的变化,我们可以使用nodemon这个插件。
全局安装
npm install -g nodemon
启动热更新
nodemon app.js
4. node.js模块
因为node.js是基于CommonJs规范的,所以在node.js模块系统中,每个文件都被视为是一个独立的模块。
node.js模块主要分为三类:内置模块、第三方模块、自定义模块。
4.1 内置模块
常用的一些内置模块有:
- url,用于处理与解析 URL;
- querystring,用于解析和格式化 URL 查询字符串;
- http,HTTP服务;
- path,路径,用于处理文件路径和目录路径;
- fs,文件系统,用于文件的读写操作;
- events,事件触发器,用于事件的派发与监听;
点击查看,nodeJs常用内置模块详细介绍。
4.2 第三方模块
在 npmjs.com官网上,我们可以下载别人已经封装好的模块到自己的项目中使用,这些模块都是第三方模块,例如http-proxy-middleware,用来设置代理,使用第三方模块,可以提高项目的开发效率,要注意,在安装模块版本的时候,不建议安装最新版的,容易有bug。
4.3 自定义模块
我们可以从官网上下载别人写好的模块直接使用,也可以按照自己的项目需要,封装模块,发布到官网上,让别人来下载使用。
这里说一下npm包发布的流程:
- 注册npmjs官网账号,官网地址:https://www.npmjs.com/;
- 创建你要发布的项目,创建完成后,在终端执行
npm init -y
, 生成Package.json 文件,填写包的名称、版本号、入口文件等,要保证包的名称在官网上是唯一的; - 执行发布,终端输入
npm login
回车,输入账号,密码,登录npmjs官网;然后输npm publish
,就可以将包发布到官网了; - 查看,打开npmjs网站 ,进入个人中心–>packages,就可以看到发布的包;
- 更新,修改完代码内容后,改变package.json里面版本号,再执行
npm publish
,就可以更新发布了,在官网上可以看到自己发布过的版本; - 使用方式,终端中使用
npm i 包名称
安装包,然后在文件中使用require(包名称)
,将包导入自己的项目中,就可以使用了; - 撤销已经发布的包版本,终端中输入
npm unpublish 包名称@版本号
;