1.http模块
1.1 在node.js里面有自带的http模块,直接引入就行,它可以给我们创建一个服务器。
1.2 引入方式:const http = require(“http”)。
1.3 作用:
1.3.1通过createServer创建一个服务器,createServer里面的参数为回调函数,如果有请求的话,回调函数就会执行,执行机制如果访问一次,那么回调函数相应地执行一次。
1.3.2 自己所创建的服务器需要添加自己写的端口来提供监听。这样所有来自前端的请求都会被服务器监听到。
1.4 request与response:request代表请求,即输入(接受)——被请求的信息。response代表响应,即输出——输出的信息
2.fs模块
2.1 在node.js里面有自带的fs模块,直接引入就行,它是文件系统模块,能允许访问计算机上的文件系统并与之交互。
2.2 引入方式:const fs = require(“fs”)。
2.3 作用:
2.3.1 写入文件。如果指定的文件已经存在,它会将旧内容替换为参数所提供的内容,如果指定的文件不存在,则创建一个新文件。关键字:writeFile。
2.3.2 读取文件。关键字:readFile,该方法至少有两个参数。第一,文件的路径,第二,回调函数。如果有错误会抛出错误,否则输出文件内容。
2.4 fs模块里面的有些方法存在异步,书写方式可以用回调函数方式也可以用async和await关键字即promise去写。
3.url模块
3.1 在node.js里面有自带的url模块,直接引入就行,它是全球统一资源定位符,也称为网址。
3.2 引入方式:const url = require(“url”)。
3.3 作用:
3.3.1 url.parse()方法。通过这个方法可以获取URL字符串,通过utf-8或者buffer字节对其进行解析,然后返回URL对象。
3.3.2 url.format()方法。将传入的url对象编程一个url字符串并返回。
3.3.3 url.resolve()方法。用来解决锚标记HREF的Web浏览器的方式来解析相对于基础URL的目标URL,返回一个格式为"from/to"的字符串。
通过上述三个方法写的一个响应不同页面小功能
// 后端中的web层 提供所需要的接口
const http = require("http")
const fs = require("fs")
const url = require("url")
const quertString = require("querystring")
const server = http.createServer((req,res) =>{
// 创建静态私服
let urlObj = url.parse(req.url,true);
// 获取路由(地址、接口)
let pathname = urlObj.pathname;
// 获取参数
let query = urlObj.query;
//index.html页面
if((pathname == "/" || pathname == "/index.html") && req.method == "GET"){
fs.readFile("./index.html","utf-8",(err,data) =>{
if(err){
// 如果错误直接去404页面
fs.readFile("./page/404.html","utf-8",(err,data) =>{
if(err){
res.end("404")
}
res.end(data)
return ;
})
}
res.end(data);
})
}else if(pathname == "/css/index.css" && req.method == "GET"){ // index.css页面
fs.readFile("./css/index.css","utf-8",(err,data) =>{
res.end(data)
})
}else if(pathname == "/css/backshou.css" && req.method == "GET"){ //backshou页面
fs.readFile("./css/backshou.css",'utf-8',(err,data) =>{
res.end(data)
})
}else if(pathname == "/page/404.html" && req.method == "GET"){ //404.html页面
fs.readFile("./page/404.html","utf-8",(err,data) =>{
res.end(data)
})
}else if(pathname == "/page/login.html" && req.method == "GET"){ // 登录页面
fs.readFile("./page/login.html","utf-8",(err,data) =>{
res.end(data)
})
}else if(pathname == "/page/backshou.html" && req.method == "GET"){ // backshou,html页面
fs.readFile("./page/backshou.html","utf-8",(err,data) =>{
res.end(data)
})
}
})
server.listen(3000,()=>{
console.log('服务器已启动')
})
效果图
例1:login.html
例2:index.css
例3:backshou.html