node中如何创建基本的web服务器、req请求对象与如何解决中文乱码的问题

132 阅读1分钟

如何创建基本的web服务器

//  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.');
});
// 4.启动服务器
server.listen(8080, function() {
    console.log('server running at http://127.0.0.1:8080');
});

req请求对象

const http = require('http');
const server = http.createServer();
//req是请求对象,包含了客户端相关的数据和属性
server.on('request', (req, res) => {
    //req.url 是客户端请求的 URL 地址
    const url = req.url;
    //req.method 是客户端请求的 method 类型
    const method = req.method;
    const str = `Your request url is ${url},and request method id ${method}`;
    console.log(str);
    // 调用res.end()方法,向客户端响应一些内容 
    res.end(str)
});
server.listen(80, () => {
    console.log('server running at http://127.0.0.1');
})

image.png

解决中文乱码问题

我们可以使用res.setHeader()方法,有两个参数,都是固定写法

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(str)
});

server.listen(80, () => {
    console.log('server running at http://127.0.0.1');
});

image.png

当我们没有使用res.setHeader()方法,我们的中文则会出现乱码的问题 image.png