一
内置 http 模块
作用就是通过 node.js 来搭建一个 服务器
加载 http 模块 按照语法和步骤,执行模块功能
node.js 就会为我们 搭建 一个服务器
类似实现了一个 apache 或者 nginx 的功能
但是目前还是本地的服务器,还不能通过其他电脑来访问,只能当前电脑访问
1,加载 http 模块
const http = require('http');
2,通过 http模块对象,来执行 http模块的功能
2-1,先创建一个http服务,使用的是http模块提供的功能
语法格式
创建服务器对象,还要做相关的设定
const server = http.createServer(function(req , res){})
函数可以定义两个参数
req : 存储的是每次发送的请求信息,也就是在地址栏输入的信息
没有请求,不会有信息存储
req.url 是每次访问请求的地址 地址是 127.0.0.1:8080 之后的内容
例如 127.0.0.1:8080/index.html
req.url 就是 /index.html
可以根据 不同的请求路径 读取不同的文件内容,显示在页面中
res : 存储是每次请求返回的响应内容
res.end(内容)
向浏览器返回本次请求的响应内容
也就是向浏览器返回一个html页面的程序代码,程序代码,往往是我们通过 fs模块 读取的文件内容
定义 server服务器的监听端口
监听端口的数值范围是 0 - 65535 每个人根据自己的实际情况设定端口
server.listen( 8080 , function(){} )
如果端口被占用,会有报错信息,只要更换设定的监听端口即可
listen EADDRINUSE: address already in use :::8080
监听的端口已经被使用
执行成功之后,光标会一直闪烁,证明端口一直在被监听
如果有任何对这个端口发起的请求,都会有相应的执行内容
在 createServer 函数中,来定义如果,有请求发送,要执行的对应的程序内容
请求地址是本地地址 127.0.0.1:8080 或者 localhost:8080
cmd或者编辑器的控制台,不要关闭,一旦关闭,就等于终止服务器的运行
demo
js详解
// 1,加载 http模块,生成http模块对象
const http = require('http');
// 加载fs模块,读取写入文件内容
const fs = require('fs');
// 2,使用 http 模块功能,创建一个本地的服务器
// 2-1,创建服务器对象
const server = http.createServer(function(req,res){
// 根据路径地址,读取文件内容,显示在页面中
if(req.url === '/index.html'){
// 如果请求访问的是 index.html 文件
// 那么我们就要读取 index.html 文件的内容
// 读取文件的内容,使用的方式 是 fs 模块
fs.readFile('./index.html' , 'utf-8' , function(err,data){
// 如果路径正确,读取成功 err 应该是 null
// 如果不是null,证明读取错误,要报错
if(err !== null){
return console.log(err);
}
// 如果是读取成功,向页面输出,读取的文件内容
// 也就是 HTML文件的代码内容
// 代码内容,实际上是通过 node.js 搭建的服务器,交给浏览器来执行html文件的程序内容
res.end(data);
})
}
// 如果是其他地址,执行其他的判断,读取相应路径的文件,显示文件内容
if(req.url === '/cart.html'){
// 根据请求的地址,访问相应的路径下的文件
fs.readFile('./cart.html' , 'utf-8' , function(err,data){
// 如果读取文件有误,输出错误信息
if(err !== null){
return console.log(err);
}
// 如果读取正确,返回相应的响应体
res.end(data);
})
}
});
// 2-2,设定服务器的监听端口
server.listen(8080 , function(){
console.log('监听端口成功');
})
总结
1,功能:
通过 node.js 的 内置fs模块 和 内置 http 模块,搭建一个简易的本地服务器
2,步骤思路:
1,加载 http 和 fs 内置模块
const http = require('http');
const fs = require('fs');
2,创建服务器对象
const server = http.createServer(函数)
3,设定服务器的监听端口
server.listen('端口',function(){监听成功})
4,确定服务器监听端口成功,之后,在丰富完善createServer(函数)
createServer(function(参数1,参数2){})
参数1:请求内容
参数2:响应内容
通过 参数1.url 来判断请求的地址
通过 参数2.end() 来返回响应内容
createServer(function(req,res){
if(req.url === '/路径地址'){
根据这个路径地址,读取响应文件内容
fs.readFile('路径' , 'utf-8' , function(err,data){
if(err !== null){
如果报错信息不是null,证明读取文件有错误
return console.log(err)
}
如果报错新消息是null,证明读取成功,向服务器发送响应内容
res.end(data);
})
}
有其他的请求,判断其他的路径地址,读取相应的文件,返回相应的请求内容
})