5. http模块
5.1IP 点分十进制 a.b.c.d 其中每个字母取值0-255之间
5.2域名和域名服务器Domain Name
5.3DNS服务器将域名解析为IP
5.4端口号,每个web服务对应唯一的端口号,每个端口号不能被多个端口号占用,
5.5创建web服务
const http = require('http')
const server = http.createServer()//创建服务
server.on('request',function(req,res){
//绑定request事件
})
//启动服务
server.listen(8080,function(){
console.log('server running at localhost')
}
)
5.6 request 请求
req.url //请求地址
req.method //请求方法
5.7 respond
res.end() //调用res.end()方法 ,向客户端发送文本内容
5.8解决中文乱码
设定响应头,需要在res.end()上面
res.setHeader('Conten-Type','text/html:charset= utf-8')
5.9不同请求地址,不同内容
获取url地址;设置默认响应内容;判断用户是否请求/ 或 index.html
判断用户请求是否为/about.html;设置Content-Type 请求头
使用res.end()把内容响应给客户端
6时钟案例
把文件的实际存放路径作为每个资源的请求url地址
服务器充当的角色就是一个字符串的搬运工
7模块化
7.1模块化概念
小霸王游戏机,卡带与整体可以拆分。编程过程中把大文件拆成独立互相依赖的多个小模块。把复杂的问题拆分为多个小模块。
模块化好处:好处多多,能用就用
模块分类:内置(fs、path、http)自定义(.js文件)第三方模块(既不是官方也不是自己开发的模块)//软件官方,本人,其他人
加载其他模块,会执行被加载模块中的代码。
const custom = require('./custom.js') //加载自定义模块 可以省略.js
const moment = require('moment') //加载第三方模块
模块作用域:在自定义模块中变量、方法、只能在当前模块内被访问。用来防止全集变量的污染
module 对象 ,用此对象来对外暴露块作用域内的,内部有一个exports对象
当使用require()方法导入自定义模块时,得到就是module.exports所指的对象。导入的结果以module.exports为准
默认情况下 exports 和module.exports 指向的同一个对象
7.2CommJS规范
7.3Node.js中模块的三大分类
7.4npm管理包
7.5规范的包结构
7.6了解模块的加载机制