美文网首页
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模块

    内置HTTP模块 Node.js 中有 HTTP 这个内置模块,HTTP 模块允许 Node.js 通过超文本传输...

  • 兄弟会8.9号笔记

    node.js模块学习 http 模块 fs 模块 url 模块 http 模块 HTTP http.STA...

  • Node.js HTTP模块

    内置HTTP模块 Node.js中有HTTP这个一个内置模块,它允许Node.js通过超文本传输协议(HTTP)传...

  • Node.js与内置模块

    目录: 认识Node.js fs文件系统模块 path路径模块 http模块 认识Node.js 为啥JavaSc...

  • Node模块之http模块(七)

    Node.js标准库提供了 http 模块,是Node.js中非常重要的一个核心模块。通过http模块,你可以使用...

  • Node.js 之 http模块

    http模块 引入http模块 开启一个本地服务器需要Node.js中http核心模块http--模块提供了搭建本...

  • Nodejs的模块引入与回调函数

    Node.js模块系统 在 Node.js 中,引入一个模块 如: var http=require('fs');...

  • Node.js(七)HTTP模块http

    http是Node.js的核心模块之一,要使用http模块,需要:const http = require('ht...

  • http模块

    什么是http模块 http模块是Node.js官方提供的、用来创建web服务器的模块。通过 http模块提供的h...

  • Node.js Web 模块

    Node.js 提供了 http 模块,http 模块主要用于搭建 HTTP 服务端和客户端,使用 HTTP 服务...

网友评论

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

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