总结
node.js是什么
- JavaScript运行时
- 既不是语言,也不是框架,他是一个平台
node.js中的JavaScript
- 没有DOM。没有BOM。
- EcmaScript基本的JavaScript语言部分
- 在node中为JavaScript提供了服务器级别的API
- 文件操作能力
- http服务能力
node中的JavaScript
Ecmascript
- 变量
- 方法
- 数据类型
- 内置对象
- Array
- object
- Math
模块系统
- 在node中没有全局作用域的概念
- 在node中可以通过require方法来加载执行多个JavaScript脚本文件
- require加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题
- 模块完全是封闭的
- 外部无法访问外边
- 外边也无法访问内
- 模块作用域固然带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突
- 但是某些情况下模块是需要模块与模块之间的通信的
- 在每一个模块中,都提供了一个对象:exports
- 该对象是默认一个空对象
- 你要做的是把需要被外部访问使用的成员手动的挂载到exports,接口对象中
- 然后谁来require这个模块,就可以得到这个模块内部的exports接口对象
核心模块
- 核心模块是由node提供的一个个具名的模块,他们都有自己特殊的名称标识,例如:
- fs文件操作模块
- http网络服务构建模块
- os操作系统信息模块
- path路径处理模块
- ………………
- 所有的核心模块在使用的时候都必须手动的先使用require方法来加载
- var fs = require(‘fs’)
- HTTP
- require
- 端口号
- IP地址定位计算机,端口号定位具体的应用程序
- content-Type
- 服务器最好把每次的响应的数据是什么内容类型都正确告诉客户端
- 对于文本类型最好都加上编码,防止解析乱码
- 通过网络发送文件
- 发送的不是文件,本质上是发送是文件的内容
- 当浏览器收到服务器响应内容户后,就会根据呢的content-type来解析处理.