node.js htp模块创建服务器

1 创建简单的服务器

首先导入http模块,调用createServer()创建服务器实例,然后监听访问请求,最后调用listen()方法启动服务器,指定端口号和回调函数。只要访问了http://127.0.0.1:8080,服务器端控制台就会打印出someone visit website。

// 手写服务器
const http = require('http')
// 创建web服务器实例
const sever = http.createServer()
// 为web服务器实例绑定request事件 req请求对象
sever.on('request',(req,res)=>{
    console.log('someone visit website')
})
// 启动服务器
sever.listen(8080,function (){
    console.log('website http://127.0.0.1:8080')
})

2.创建一个服务器并且使用send()给客户端响应一段字符串,内容为请求的地址和请求方法。

const http = require('http')
const sever = http.createServer()
// req请求对象 包含了客户端请求的数据
sever.on('request',(req,res)=>{
    const url = req.url
    const method = req.method
    const str = `你请求的地址是${url},请求方法为${method}`
    // res.end()响应客户端的请求
    // 如果调用res.end()出现中文乱码的情况需要手动设置编码格式
    res.setHeader('Content-Type','text/html;charset=utf-8')
    res.end(str)
})
sever.listen(8080,()=>{
    console.log('The website is http://127.0.0.1:8080')
})

3.根据不同的请求url响应不同的内容

如果请求的地址为“/”或者“/index.html”响应首页,如果请求地址为“/about.html”响应关于页面,否则响应404页面


// 根据不同的url响应不同的内容
const http = require('http')
const sever = http.createServer()
sever.on('request',(req,res)=>{
    let content = '<h1>Not Fonud 404</h1>'
    const url = req.url
    // console.log(url)
    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)
})
sever.listen(8080,()=>{
    console.log('http://127.0.0.1:8080')
})

4.根据不同的请求url响应相应的HTML页面

判断url地址决定要响应的页面,然后利用path模块获取对应HTML文件的路径,之后利用fs模块读取文件内容,最后res.send()将读取的内容响应给浏览器。

const http = require('http')
const fs = require('fs')
const path = require('path')
const server = http.createServer()
server.on('request',(req,res)=>{
    let url = ''
    if (req.url === '/') {
        url = path.join(__dirname,'./html/index.html')
        // console.log(url)
    }
    else {
        url = path.join(__dirname,'./html',req.url)
    }
    fs.readFile(url,'utf-8',(err,datastr)=>{
        res.setHeader('Content-Type','text/html;charset=utf-8')
        if (err) res.end('<h1>404 Not Fonud !</h1>')
        res.end(datastr)
    })
})
server.listen(8080,()=>{
    console.log('server running is http://127.0.0.1:8080')
})

path.join() 该方法用于拼接路径

fs.readFile() 读取文件成功会将读取的内容返回给回调函数的datastr,读取失败则会返回err对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值