美文网首页
Node.js 之 http模块

Node.js 之 http模块

作者: 北piao青年 | 来源:发表于2020-07-06 21:46 被阅读0次

    http模块

    引入http模块

    开启一个本地服务器需要Node.js中http核心模块
    http--模块提供了搭建本地服务器的API,首先我们在项目中引入;

    let http = require('http')
    

    创建服务器实例

    引入之后我们利用http.createServer()方法得到一个服务器实例。

    let server = http.createServer() // createServer()方法返回一个server实例,所以我们需要一个变量来接收
    

    经过以上两步,我们已经搭建好了一个服务器实例,然后我们给服务器实例绑定接收request的事情处理函数,代码如下:

    监听请求

    server.on('request', (req, res) => {
        console.log(req.ur l) // 获取到请求的路径(请求路径永远以“/”开头)
    })
    // 给服务器绑定接收请求的处理事件,当服务器接收到客户端发送的请求后,会调用后面的处理函数,处理函数接收两个参数:请求信息对象,响应信息对象。
    

    绑定监听端口号

    绑定监听端口号,开启服务器。代码如下:

    server.listen(3000, () => {
        console.log('服务器开启成功,可以通过访问http://127.0.0.1:3000/来获取数据~~')
    })
    // server.listen()用来绑定监听的端口号,可以传入第二个参数,当服务器开启成功后,触发后面的回调函数
    

    例子

    需求说明

    当我们访问“http://127.0.0.1:3000/login”, 服务器返回 “login page”
    当我们访问“http://127.0.0.1:3000/register”, 服务器返回 “register page”
    当我们访问“http://127.0.0.1:3000/”, 服务器返回 “index page”
    当我们访问“http://127.0.0.1:3000/product”, 服务器返回 产品信息列表
    我们实现这个需求,只需要在绑定服务器监听的事件处理函数中获取到用户的请求路径,然后根据不同路径返回不同数据即可

    代码实现

    创建 httpserver.js文件

    let http = require('http')
    
    let server = http.createServer()
    
    server.on('request', (req, res) => {
        let url = req.url //得到请求的路径 (请求的路径永远以‘/’开头)
        if (url === '/') {
            res.end('index page')
        } else if (url === '/login') {
            res.end('login page')
        } else if (url === '/register') {
            res.end('register page')
        } else if (url === '/product'){
            let arr = [
                    {
                        name: 'iphone X',
                        price: 8888
                    },
                    {
                        name: 'iphone 7',
                        price: 4320
                    }
                ]
    // 响应的数据类型必须是字符串或者二进制数据
            res.end(JSON.stringify(arr))
        } else {
            res.end('404 NOT found')
        }
    })
    
    server.listen(3000, () => {
        console.log('服务器启动成功了,,可以访问http://127.0.0.1:3000/啦')
    })
    
    

    运行服务

    node httpserver.js
    

    分别请求路径,我们看到我们请求不同的路径,服务器给我们返回了不同的内容,并且显示在了网页中。


    设置状态码和响应头

    response.writeHead(200, { 'Content-Type': 'text/plain' });
    

    设置响应头

    response.setHeader('Content-Type', 'text/html');
    

    写入内容

    response.write(fileData);
    

    结束响应

    response.end();
    

    相关文章

      网友评论

          本文标题:Node.js 之 http模块

          本文链接:https://www.haomeiwen.com/subject/xbxnqktx.html