node.js+postman实现模拟HTTP服务器与客户端交互

目录
  • 一、node搭建HTTP服务器
  • 二、HTTP服务器处理get请求
    • 1、postman发送get请求
    • 2、服务器解析
  • 三、HTTP服务器处理post请求
    • 1、postman发送post请求
    • 2、服务器解析

当应用程序(客户端)需要某一个资源时,可以向一台服务器通过http请求获取到这个资源。提供资源的服务器就是web服务器(本文用node.js创建),用postman模拟客户端向服务器发送请求。

一、node搭建HTTP服务器

node中使用 http 模块来创建 HTTP 服务器, 每当接收到新的请求时,request 事件会被调用,并提供两个对象:一个请求req(http.IncomingMessage 对象)和一个响应res(http.ServerResponse 对象)。

request 提供了请求的详细信息。 通过它可以访问请求头和请求的数据。(客户端–>服务器)

response 用于构造要返回给客户端的数据(服务器–>客户端)。下面是一个简单的HTTP web服务器示例。

下面就是一个简单的HTTP服务器的例子

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

// 创建http服务器
const server = http.createServer((req, res) => {
		//设置 statusCode 属性为 200,以表明响应成功
				res.statusCode = 200
  		// res本质上继承了stream.Writable的类
        // 向客户端发送完响应头和正文后告诉服务器本次消息传输结束
        res.end("hollow server")
        // 相当于res.writer("hollow server")+res.end()
    })
    // 监听服务器,当服务器就绪时,listen 回调函数会被调用
    //控制台打印启动成功
server.listen('8089', 'localhost', () => {
    console.log("启动成功")
})

这时候你的本地服务器就搭建完毕了,可以去浏览器打开localhost:8089查看

二、HTTP服务器处理get请求

Postman 是一种常用的接口测试工具,可以发送几乎所有类型的HTTP请求。Postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。

下载也十分简单,可以点击这里直接去官网下载👉👉👉 Download Postman

1、postman发送get请求

postman中新建一个request请求,在Enter request url 中填写上面我们用node.js创建的HTTP服务器的主机地址以及用户名和密码http://localhost:8089/login?username=ahua&password=123,请求类型选择GET,点击send,postman就会向服务器发送一个get请求

2、服务器解析

服务器这边接收到客户端(postman)的get请求,对发送过来的数据进行处理

const http = require('http')
    // 处理url的模块
const url = require('url')
    // 处理query的模块
const qs = require('querystring')
const server = new http.Server((req, res) => {
    // request对象中封装了客户端给我们服务器传递过来的所有信息
    // 对url进行解析
    const { pathname, query } = url.parse(req.url)
    if (pathname === '/login') {
        //console.log(query)
            // qs的parse方法可以对query进行处理
            // 将字符串类型转换为js对象  username=ahua&password=123  -->  {username: 'ahua',password: 123}
        //console.log(qs.parse(query))
        const { username, password } = qs.parse(query)
        console.log(username, password)
        res.end('请求结果')
    }
    console.log(req.url)
    //打印请求类型
    console.log(req.method)
    //请求头
    console.log(req.headers)
})
server.listen('8089', 'localhost', () => {
    console.log("serve启动成功")
})

服务器这边的解析结果

三、HTTP服务器处理post请求

1、postman发送post请求

上面get请求中将用户名和密码放在地址栏可能不够安全,处理账号密码想稳妥一点,现在将他们放在body里用json文件传给服务器。

下图所示便是postman将username和password放在json文件中通过bady传递给服务器的操作

2、服务器解析

服务器这边接收到客户端(postman)的post请求,对发送过来的数据进行处理。首先应该判断是否为post请求,然后拿到body中的数据,再对数据进行解析。

const http = require('http')
    // 处理url的模块
const url = require('url')
const server = new http.Server((req, res) => {
    // 获取客户端传过来的url中的pathname
    const { pathname } = url.parse(req.url)
        // 判断是否为login
    if (pathname === '/login') {
        // 判断客户端发送的是否为post请求
        if (req.method === 'POST') {
            // 定义客户端传过来数据的默认编码格式
            req.setEncoding('utf-8')
                // req.setEncoding('binary') binary定义二进制编码
                // 拿到body中的数据
                // body中的数据是通过流来写入的
                // 当监听到data事件,获取到输入流,也就是body中相关的内容,可以返回这个data的结果
            req.on('data', (data) => {
                // JSON.parse()把对象中的字符串转成js对象
                //  {"username":"阿花","passward":"123"}  ---> {username: 'ahua',password: 123}
                const { username, passward } = JSON.parse(data)
                console.log(username, passward)
            })
        }
    }

    res.end('请求结果')

})
server.listen('8089', 'localhost', () => {
    console.log("serve启动成功")
})

服务器打印请求结果

这样就完成了一个简单的服务器交互流程。

到此这篇关于node.js+postman实现模拟HTTP服务器与客户端交互的文章就介绍到这了,更多相关node.js+postman 服务器与客户端交互内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • nodejs简单实现TCP服务器端和客户端的聊天功能示例

    本文实例讲述了nodejs简单实现TCP服务器端和客户端的聊天功能.分享给大家供大家参考,具体如下: 服务器端 var net = require('net'); var server = net.createServer(); //聚合所有客户端 var sockets = []; //接受新的客户端连接 server.on('connection', function(socket){ console.log('got a new connection'); sockets.push(soc

  • NodeJS http模块用法示例【创建web服务器/客户端】

    本文实例讲述了NodeJS http模块用法.分享给大家供大家参考,具体如下: Node.js提供了http模块,用于搭建HTTP服务端和客户端. 创建Web服务器 /** * node-http 服务端 */ let http = require('http'); let url = require('url'); let fs = require('fs'); // 创建服务器 let server = http.createServer((req, res) => { // 解析请求 le

  • node.js使用http模块创建服务器和客户端完整示例

    本文实例讲述了node.js使用http模块创建服务器和客户端.分享给大家供大家参考,具体如下: node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require('http'); //创建一个http服务器 let server = http.createServer(); //监听端口 server.listen(8888, '0.0.0.0'); //设置

  • node.js基于dgram数据报模块创建UDP服务器和客户端操作示例

    本文实例讲述了node.js基于dgram数据报模块创建UDP服务器和客户端操作.分享给大家供大家参考,具体如下: node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端. 一.创建UDP服务器和客户端 服务端: const dgram = require('dgram'); //创建upd套接字 //参数一表示套接字类型,'udp4' 或 'udp6' //参数二表示事件监听函数,'message' 事件监听器 let server = dg

  • node.js+postman实现模拟HTTP服务器与客户端交互

    目录 一.node搭建HTTP服务器 二.HTTP服务器处理get请求 1.postman发送get请求 2.服务器解析 三.HTTP服务器处理post请求 1.postman发送post请求 2.服务器解析 当应用程序(客户端)需要某一个资源时,可以向一台服务器通过http请求获取到这个资源.提供资源的服务器就是web服务器(本文用node.js创建),用postman模拟客户端向服务器发送请求. 一.node搭建HTTP服务器 node中使用 http 模块来创建 HTTP 服务器, 每当接

  • node.js使用net模块创建服务器和客户端示例【基于TCP协议】

    本文实例讲述了node.js使用net模块创建服务器和客户端.分享给大家供大家参考,具体如下: node.js中net模块创建服务器和客户端 1.node.js中net模块创建服务器(net.createServer) // 将net模块 引入进来 var net = require("net"); // 创建一个net.Server用来监听,当连接进来的时候,就会调用我们的函数 // client_sock,就是我们的与客户端通讯建立连接配对的socket // client_soc

  • node.js+postman+mongodb搭建测试注册接口的实现

    目录 准备工作 下载安装Postman mongodb连接串配置 GET请求测试 注册接口搭建 创建User数据模型 使用body-parser中间件 POST请求测试 使用User数据模型 使用gravatar处理头像 准备工作 申请一个免费的MongoDB 到https://www.mlab.com注册申请一个500M的MongoDB数据库.登录后手动在创建Databases下的Collections中手动创建一个数据库node_app. 在个人首页点击Connect获取node.js连接M

  • 从零开始学习Node.js系列教程五:服务器监听方法示例

    本文实例讲述了Node.js服务器监听方法.分享给大家供大家参考,具体如下: httpsnifferInvoke.js var http = require('http'); var sniffer = require('./httpsniffer'); var server = http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello, Wor

  • 为Node.js程序配置使用Nginx服务器的简明教程

    Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用,如实时聊天等等.然而对于gzip编码,静态文件,HTTP缓存,SSL处理,负载平衡和反向代理等,都可以通过nginx来完成,从而减小node.js的负载,并通过nginx强大的缓存来节省网站的流量从而提高网站的加载速度. 流程图 nginx配置如下: htt

  • Node.js 实现简单的接口服务器的实例代码

    通过Node.js来实现接口服务器的功能.主要特点为: 1) 增加接口不需要重启 2) 异步执行,但接口阅读的时候是同步的代码(从上而下),或者可以按需求并行,串行 这里只是抛出基本思路,所以使用GET,也没有加密之类的 首先启动监听端口,配置好访问规则.(通过识别特定URL ,动态执行相应的接口脚本) ----- |----HamstrerServlet | ------ command3G | ------ login.js //登录脚本(这里只是简单演示) | --- server.js

  • Node.js创建Web、TCP服务器

    使用http模块创建Web服务器 Web服务器的功能: 接受HTTP请求(GET.POST.DELETE.PUT.PATCH) 处理HTTP请求(自己处理,或请求别的程序处理) 做出响应(返回页面.文件.各类数据等) 常见的Web服务器架构: Nginx.Apache:负责接受HTTP请求,确定谁来处理请求,并返回请求的结果 php-fpm / php模块:处理分配给自己的请求,并将处理结果返回给分配者 常见请求种类: 请求文件:包括静态文件(网页.图片.前端JavaScript文件.css文件

  • Node.js原生api搭建web服务器的方法步骤

    node.js 实现一个简单的 web 服务器还是比较简单的,以前利用 express 框架实现过『nodeJS搭一个简单的(代理)web服务器』.代码量很少,可是使用时需要安装依赖,多处使用难免有点不方便.于是便有了完全使用原生 api 来重写的想法,也当作一次 node.js 复习. 1.静态 web 服务器 'use strict' const http = require('http') const url = require('url') const fs = require('fs'

  • node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文件等,就可以在浏览器中访问了 var express = require("express"); var path = require("path"); var app = express(); //目录 (当前目录下的www_root目录) app.use(expre

随机推荐