浏览器的JavaScript解析引擎

  1. Chrome 浏览器 => V8

  2. Firefox 浏览器 => OdinMonkey(奥丁猴)

  3. Safri 浏览器 => JSCore

  4. IE 浏览器 => Chakra(查克拉)

  5. etc

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

fs文件系统模块

1
const fs = require('fs')
fs.readFile()方法,用来读取指定文件中的内容
1
fs.writeFile(file, data[, options], callback) // option 是字符编码
fs.writeFile() 方法,用来向指定的文件中写入内容
1
fs.readFile(path[, options], callback)  

文件的路径问题

  1. __dirname: 表示,当前正在执行的js文件所在的目录
  2. __filename: 表示,当前正在执行的js文件的完整路径

path路径模块

1
const path = require('path')
  1. path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串
  2. path.basename() 方法,用来从路径字符串中,将文件名解析出来
  3. path.extname() 方法,可以获取路径中的扩展名部分

HTTP 模块

http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。
步骤1 导入模块
1
const http = require(http)
步骤2 创建web服务器实例
1
const server = http.createServer()
步骤3 为服务器实例绑定request事件
1
2
3
4
5
// 使用服务器实例的 .on() 方法,为服务器绑定一个request事件
server.on('request',(req,res)=>{
// 只要有客户端来请求我们自己的服务器,就会触发request事件,从而调用这个事件处理函数
console.log('Someone visit our web server.')
})
步骤4 启动服务器
1
2
3
4
// 调用server.listen(端口号,cb回调)方法,即可启动web服务器
server.listen(8080,()=>{
console.log('服务启动成功 请访问:http://localhost:8080');
})

req请求对象

1
2
3
4
5
server.on('request',(req)=>{
// request请求对象 包含了用户请求报文中的所有内容,通过request对象可以获取所有用户提交过来的数据
// req.url 是客户端请求的URL地址 端口号后面的
// req.method 获取请求客户端所使用请求方法(POST,GET ...)
})

res响应对象

1
2
3
4
5
server.on('request',(req,res)=>{
// response响应对象 用来向用户响应一些数据,当服务器要向客户端响应数据的时候必须使用response对象
// 有了 request对象和response对象,就既可以获取用户提交的数据,也可以向用户响应数据了
// res.end() 向客户端响应一些内容,并结束此次请求
})

响应数据中文乱码问题

1
2
// 解决乱码的思路,服务器通过设置http响应报文头,告诉浏览器使用相应的编码来解析网页
res.setHeader('Content-Type','text/plain;charset=utf-8'); // text/plain 纯文本 编码utf-8