nodejs-处理http请求


前言

使用nodejs搭建后端代理服务,处理http请求,理解nodejs是如何处理get、post请求的


node 处理 get 请求

  • 使用 http 模块创建代理服务器
  • 使用 querystring 模块解析请求参数
  • req.end 方法发送消息

入口文件 index.js

const http = require('http')
const queryString = require('querystring')

// 创建代理服务器
const server = http.createServer((req, res) => {
  const {url} = req
  console.log('request----url',url) // 打印下请求的url
  req.query = queryString.parse(url.split('?')[1]) 
  res.end(JSON.stringify(req.query)) // 对象转JSON字符串,否则发送的将会是 [object Object]
})

server.listen(3030) // 监听3030接口
console.log('3030 listening~~~')

end:写出最后的数据,并且关闭流,不使用该方法的话,客户端将默认对话并未结束并保持等待;

启动服务:

node index.js

浏览器访问url: http://localhost:3030/node/http-test?method=get&year=2023,浏览器会会发起get请求,结果如下
在这里插入图片描述

控制台:
在这里插入图片描述

通过观察浏览器的network以及打印,会发现浏览器自动发送一个路径为 /favicon.ico 的请求,这个请求是页面tab中的小图标,可以忽略

在这里插入图片描述

node 处理 post 请求

  • 使用 http 模块创建代理服务器
  • 使用 req.on 方法监听请求
  • toString() 将二进制转换为字符串

入口文件 index.js

const server = http.createServer((req, res) => {
  
   const {url, headers} = req
   
   console.log('request----url', url)
   console.log('headers----', headers)
   res.setHeader('Content-type','application/json')
   let data 
   req.on('data', chunk => {
    // 二进制 => 字符串
    data += chunk.toString()
   })

   req.on('end', chunk => {
    console.log('数据接收完毕----', data)
    res.end(
      JSON.stringify({
        data:headers,
        code:200
      })
    )
   })
 })
server.listen(3030)
console.log('3030 listening~~~')

req.on:服务端以流的形式接收来自客户端的数据,on 方法对收到的数据进行监听并决定处理方式

  • data: 接收到数据时触发,当传输的数据流较大时,可能会分多次接收
  • end: 数据接收完毕时触发

启动服务:

node index.js

发送post请求需要借助postman工具,body中携带json数据并发送请求:

在这里插入图片描述

控制台:

在这里插入图片描述

总结

node处理http请求

  • get请求
  • post请求
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,安装nodejs-websocket可以按照以下步骤进行: 1. 确保您已经安装了Node.js环境,可以通过在命令行运行node -v来检查Node.js版本。 2. 打开命令行窗口,进入到您的项目目录下。 3. 在命令行中输入以下命令来安装websocket模块: ``` npm install websocket ``` 4. 等待安装完成后,在您的项目中引入websocket模块: ``` var WebSocketServer = require('websocket').server; ``` 5. 接下来,您可以创建一个WebSocket服务器并进行配置: ``` var server = http.createServer(function(request, response) { // 处理HTTP请求 }); server.listen(8080, function() { console.log((new Date()) + ' Server is listening on port 8080'); }); // 创建WebSocket服务器 var wsServer = new WebSocketServer({ httpServer: server, autoAcceptConnections: false }); ``` 6. 最后,在WebSocket服务器上注册事件监听器,以处理客户端连接和消息: ``` wsServer.on('request', function(request) { var connection = request.accept(null, request.origin); console.log((new Date()) + ' Connection accepted.'); connection.on('message', function(message) { if (message.type === 'utf8') { console.log('Received Message: ' + message.utf8Data); connection.sendUTF(message.utf8Data); } }); connection.on('close', function(reasonCode, description) { console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.'); }); }); ``` 以上就是安装和使用websocket模块的基本步骤。希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值