node.js--04.通过http模块创建服务器

一.详细代码

//1.导入http模块
const http = require('http')

//2.创建web服务器实例
const server = http.createServer()

//3.为服务器实例绑定request事件,监听客户端的请求
server.on('request', (req,res) => {
    //req.url客户端请求服务器的地址
    const url = req.url
    //req.method就是客户端请求服务器的方法类型(例如post/get之类的)
    const method = req.method
    //使用res.end将想要发送的内容发送给页面(客户端)
    res.end(`<h1>当前在访问服务器的url为${url}<h1>`)
})

//4.启动服务器 如果不写端口号默认为80
server.listen(8080, () => {
    console.log("server running at http://127.0.0.1:8080")
})

二.运行结果

我们可以看到现在返回页面中的代码为乱码

三.问题解决

//1.导入http模块
const http = require('http')

//2.创建web服务器实例
const server = http.createServer()

//3.为服务器实例绑定request事件,监听客户端的请求
server.on('request', (req,res) => {
    //req.url客户端请求服务器的地址 地址为端口号后面的路径
    const url = req.url
    //req.method就是客户端请求服务器的方法类型(例如post/get之类的)(默认为get请求)
    const method = req.method
    //使用res.end将想要发送的内容发送给页面(客户端)
    //res.end(`<h1>当前在访问服务器的url为${url}<h1>`)
    //如果这个时候直接发送到客户端的话会产生乱码,因为发送过去的数据含有中文
    //调用res.setHeader()方法,设置请求头为Content-Type响应头,解决中文乱码问题
    res.setHeader('Content-Type', 'text/html; charset=utf-8')
    //之后再调用res.end()将数据发送过去
    res.end(`<h1>当前在访问服务器的url为${url}<h1>`)
})

//4.启动服务器 如果不写端口号默认为80
server.listen(8080, () => {
    console.log("server running at http://127.0.0.1:8080")
})