web基本服务器创建步骤:
1.导入http模块
如果想要在自己的电脑上创建一个web服务器,从而对外提供web服务,则需要导入http模块
2.创建web服务器实例
调用http.createServer()方法,即可快速创建一个web服务器
3.绑定request事件
为服务器实例绑定request事件,即可监听客户端发送过来的网络请求
4.启动服务器
调用服务器.listen()方法,即可启动
// 1.导入http模块
const http=require("http")
// 2.创建web服务器实例
const server=http.createServer()
// 3.为服务器实例绑定request事件,监听客户端的请求
server.on("request",function(req,res){
console.log("Someone visit our web server.");
})
// 启动服务器
server.listen(8080, function () {
console.log("server running at http://127.0.0.1:8080")
})
(以上内容在新建一个后缀名为.js的文件vscode终端运行)
了解req的请求对象:
const http=require("http")
const server=http.createServer()
// req是请求对象,包含了与客户端相关的数据和属性
server.on("request",(req,res)=>{
// req.url是客户端请求的url地址
const url=req.url
//req.method是客户端请求的methoud类型
const method=req.method
const str=`Your request url is ${url},and request method is ${method}`
console.log(str);
// 调用res.end()方法,向客户端响应一些内容
res.end(str)
})
server.listen(80,()=>{
console.log("server running at http://127.0.0.1");
})
解决防中文乱码问题:
const http=require("http")
const server=http.createServer()
server.on("request",(req,res)=>{
// 定义一个字符串,包含中文的内容
const str=`您请求的url地址是${req.url},请求的method类型为${req.method}`
// 调用res.setHeader()方法,设置Content-Type响应头,解决中文乱码问题
res.setHeader("Content-Type","text/html; charset=utf-8")
// res.end()将内容响应给客户端
res.end(str)
})
server.listen(80,()=>{
console.log("server running at http://127.0.0.1");
})
根据不同的url响应不同的html内容:
(注意:运行在80端口号下,可省略http://127.0.0.1后的":80")
const http=require("http")
const server=http.createServer()
server.on("request",(req,res)=>{
// 1获取请求的url地址
const url=req.url
// 2设置默认的响应内容为404 Not found
let content="<h1>404 Not found!</h1>"
// 3判断用户请求的是否为/或/index.html首页
// 4判断用户请求的是否为/about.html关于页面
if(url==="/"||url==="/index.html"){
content="<h1>首页</h1>"
}else if(url==="/about.html"){
content="<h1>关于首页</h1>"
}
// 5设置Content-Type响应头,防止中文乱码
res.setHeader("Content-Type","text/html;charset=utf-8")
// 6使用res.end()把内容响应给客户端
res.end(content)
})
server.listen(80,()=>{
console.log("server running at http://127.0.0.1");
})
在vscode通过ctrl+shift+、即可打开终端,ctrl+鼠标左键可点击终端运行后的地址看请求后的效果