Nodejs 学习笔记
一、Node.jS 介绍
1. 为什么要学习Node.js?
前端人员(写页面、发请求、做用户交互),学习Node.js 的目的是为了帮助大家打开服务器这个黑盒子,只有了解服务端才能更好的配合服务端开发人员进行协同工作。
2. 什么是 Nodejs?
Node.js 不是一门语言,也不是框架和库,而是一个 JavaScript 运行时环境,也就是一个 JavaScript 运行的平台,可以让 JavaScript 脱离浏览器运行的一个平台。
注意:浏览器中的 JavaScript 包含 BOM、DOM、ECMAScript;Node.js 中的 JavaScript 没有 BOM 和 DOM,只有 ECMAScript 和 一些服务器级别的 API(如文件的读写、HTTP服务器等)。
3. Node.js 的特性
1)event-driven 事件驱动
2)non-blocking I/O model 非阻塞IO模型(异步)
3)lightweight and efficient 轻量和高效
4. Node.js 能做什么?
1)Web 服务器后台
2)命令行工具(npm、hexo、webpack、gulp)
注意:要使用 npm 必须先安装 node.js,因为 npm 是nodejs 开发的一款包管理工具。
二、起步
1. 安装 Node 环境
1.1 查看当前 Node 环境的版本号(查看是否已经安装)。打开命令行,输入 node --version
1.2 若没有安装,下载:https://nodejs.org/en/download/。
1.3 安装,一路 next 即可,若是已经安装过,再次安装则会对原有版本进行覆盖。
1.4 确认 Node 环境是否安装成功。打开命令行,输入 node --version 或者 node -v
2. 解析执行 JavaScript
打开命令行,用 cd 命令定位到要执行文件的位置所属目录
或者 在要执行的文件目录下 右键 “Git Bash Here”
或者 在要执行的文件目录下 按住Shift键点击右键 选择 “在此处打开 Power Shell窗口”
或者 在Sublime Text3 中安装插件 Terminal,可以点击文件右键 “Open terminal here”
然后,执行 node 文件名(注意:文件名不要使用node.js 来命名,最好也不要使用中文)。
注意:此时脱离了浏览器,是 node 在执行。
3. Node 中的JavaScript
ECMAScript、核心模块、第三方模块、用户自定义模块。
4. 一个页面怎么执行多个 JavaScript 文件?
可以用 require(加载) 和 exports(导出)。
require方法的两个作用:
1)加载文件模块并执行里面的代码(但由于模块作用域,不能拿到其中的成员);
2)拿到被加载文件模块导出的接口对象。
exports:每个文件模块中都提供了一个对象exports,exports 默认是一个空对象。可以把需要被外部访问的成员挂载到 这个 exports 中。
注意:相对路径必须加 ./ 上一级 ../ 否则会报错,因为省略后会将其当成核心模块处理。文件后缀名可以省略。在 Node 中没有全局作用域,只有模块作用域,外部访问不到内部,内部也访问不到外部。
三、Web 服务器开发
1. IP 地址 和端口号
1)IP 地址 用来定位计算机;端口号用来定位具体的应用程序。
2)所有需要联网通信的应用程序都会占用一个端口号。
3)端口号的范围在 0 - 65536 之间。
4)可以同时开启多个服务,但一定要确保不同的服务占用不同的端口号,即在一台计算机中,同一个端口号同一时间只能被一个程序占用。
2. Content-Type
不同的资源对应的 Content-Type 是不一样的,具体参照:http://tool.oschina.net/commons
注意:对于文本类型的数据,最好都加上编码,目的是为了防止中文乱码。
3. 一些常用的API
1)读取文件:readFile(要读取文件的路径, 回调函数)
2)写文件:writeFile(文件路径, 文件内容, 回调函数)
3)读取文件目录:readdir()