一、简介
1.1Node.js是什么?
- Node.js 是什么
- JavaScript 运行时环境
- 既不是语言,也不是框架,它是一个平台
1.2 Node.js 能做什么?
- Web服务器后台
- 命令行工具
- npm(node)
- git(c语言)
- hexo(node)
- 对于前端开发工程师来讲,接触node最多的是它的命令行工具
- 自己写的很少,主要是使用别人第三方开发的
- webpack
- gulp
- npm
1.3 一些资源
1.4 学习内容
- B/S 编程模型
- 模块化编程】
- RequireJS
- SeaJS
@import('文件路径)
- 以前认知的 JavaScript只能通过
script
标签来加载 - 在 Node中可以像
@import
一样来引用加载JavaScript 脚本文件
- Node常用API
- 异步编程
- 回调函数
- Promise
- async
- generator
- Express 开发框架
- EcmaScript6语法
学习Node可以让我们更好的学习前端高级内容 - Vue.js
- React
- angular
二、起步
2.1 安装Node环境
Hello World
- 创建编写JavaScript脚本文件
- 打开终端,定位到脚本文件所属目录
- 输入
node 文件名
执行对应的文件
注意: 文件名不要使用node.js
来命名
var fs = require('fs');
fs.readFile('./data/hello.txt',function(error,data){
console.log(data.toString());
})
var fs = require('fs');
fs.writeFile('./data/你好.md', '大家好,给大家介绍一下,我是Node.js', function(error){
console.log('文件写入成功');
})
- http
- require
- 端口号
- Content-Type
- 通过网络发送文件
* 发送的并不是文件,本质上来讲发送是文件的内容
* 当浏览器收到服务器响应内容之后,就会根据你的 Content-Type 进行对应的解析处理
- os
var os = require('os')
var path = require('path')
console.log(os.cpus())
console.log(os.totalmem())
console.log(path.extname('c:/a/b/c/d/hello.txt'))
三、Node中的JavaScript
- ECMAScript
- 变量
- 方法
- 数据类型
- 内置对象
- Array
- Object
- Date
- Math
- 核心模块
- 第三方模块
- 用户自定义模块
3.1 核心模块
- 核心模块是由 Node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如
- fs 文件操作模块
- http 网络服务构建模块
- os 操作系统信息模块
- path 路径处理模块
- 。。。。
- 所有核心模块在使用的时候都必须手动的先使用
require
方法来加载,然后才可以使用,例如:
3.2 用户自定义模块
四、Node中的模块系统
- 在 Node 中没有全局作用域的概念
- 在 Node 中,只能通过 require 方法来加载执行多个 JavaScript 脚本文件
- require 加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题
- 模块完全是封闭的
- 外部无法访问内部
- 内部也无法访问外部
- 模块作用域固然带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题
- 但是某些情况下,模块与模块是需要进行通信的
- 在每个模块中,都提供了一个对象:
exports
- 该对象默认是一个空对象
- 你要做的就是把需要被外部访问使用的成员手动的挂载到
exports
接口对象中 - 然后谁来
require
这个模块,谁就可以得到模块内部的 exports
接口对象 - 还有其它的一些规则,具体后面讲,以及如何在项目中去使用这种编程方式,会通过后面的案例来处理