1、http模块-创建最基本的web服务器
//导入http模块
const http = require('http');
//创建服务器实例
const server = http.createServer();
//用request事件,监听客户端请求
server.on('request',function (req,res){
console.log('Someone visit');
})
//启动服务器
server.listen(8080,function (){
console.log('http running at http://127.0.0.1:8080');
})
req是请求对象,包含了与客户端相关的数据和属性。例如:req.url是客户端请求的URL地址,req.method是客户端method请求类型。
res是响应对象,它包含了与服务器相关的数据和属性。res.end()方法是向客户端发送指定的内容,并结束这次请求的处理过程。
server.on('request',function (req,res){
const url = req.url
const method = req.method
const str = `你的请求是 ${url} 和方法是 ${method}`
console.log(str);
//解决中文乱码问题
res.setHeader('Content-Type','text/html;charset=utf-8')
res.end(str)
})
2、根据不同的url响应不同的html内容
const http = require('http');
const server = http.createServer();
server.on('request',(req,res)=>{
const url = req.url
let content = '<h1>404 not found</h1>'
if(url==='/' || url==='/index.html'){
content = '<h1>首页</h1>'
}else if(url==='/about.html'){
content = '<h1>关于页面</h1>'
}
//不能出现空格
res.setHeader('Content-Type','text/html;charset=utf-8')
res.end(content)
})
server.listen(80,()=>{
console.log('server running at http://127.0.0.1');
})
实现clock时钟的web服务器
要求:能够在浏览器中访问昨天实现的clock页面。由于clock文件夹是在本地,浏览器无法直接访问,所以需要使用web服务器。首先创建一个server实例,分别实现监听客户端请求和启动服务器。其次通过req.url获得地址并路径拼接出要访问的地址,然后通过fs.readFile()方法读文件,再通过res.end()向浏览器发送读取的数据。
const http = require('http')
const fs = require('fs')
const path = require('path')
//新建一个web服务器
const server = http.createServer()
//监听客户端请求
server.on('request',(req,res)=>{
const url = req.url
// const fpath = path.join(__dirname,url)
let fpath = ''
if(url === '/'){
fpath = path.join(__dirname,'./clock/clock.html')
}else{
fpath = path.join(__dirname,'./clock',url)
}
fs.readFile(fpath,'utf8',(err,dataStr)=>{
if(err){
return res.end('404 not found')
}
res.end(dataStr)
})
})
//启动服务
server.listen(80,()=>{
console.log('server running at http://127.0.0.1');
})