• Node.js知识点


    1.GET / POST请求

           1.1获取GET请求

                    由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。
                    node.js 中url模块中的parse函数提供了这个功能。

                    util是node.js常用的工具模块。util.inspect() 是一个将任意对象转换为字符串的方法,通常用于调试和错误输出

    1. //GET请求练习
    2. var http = require("http");
    3. var url = require("url");
    4. var util = require("util");
    5. //创建服务器
    6. http.createServer(function(req,res){
    7. //输出响应式头
    8. res.writeHead(200,{"Content-Type":'text/plain;charset=utf-8'});
    9. res.end(util.inspect(url.parse(req.url,true)))
    10. }).listen(8888)
    11. console.log(`服务器已启动。。访问:http://127.0.0.1:8888`);

            2.2获取POST请求内容

    POST请求的内容全部的都在请求体中,http.ServerRequest并没有一个属性内容为请求体,原因是等待请求体传输可能是一件耗时的工作。
     

    1. const http = require('http')
    2. const querystring = require('querystring')
    3. //表单页面内容
    4. var postHtml =
    5. '编程 Node.js实例'+
    6. ''+
    7. '
      '+
    8. '姓名:
      '
      +
    9. '班级:
      '
      +
    10. ''+
    11. ''+
    12. '';
    13. http.createServer(function(req,res){
    14. //定义一个body变量,用于暂存请求信息
    15. var body='';
    16. //通过req的data事件监听函数 每当接收到请求的数据,加到body变量中
    17. req.on("data",function(turck){
    18. // +=默认将内容转换成字符串
    19. body+=turck;
    20. })
    21. //在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回
    22. req.on ("end",function(){
    23. //解析参数
    24. body = querystring.parse(body);
    25. //设置响应头部信息及编码
    26. res.writeHead(200,{"Content-Type":'text/html;charset=utf-8'});
    27. if(body.name && body.class){
    28. //执行提交操作,获取提交信息,并输出
    29. res.write(`姓名:${body.name}`)
    30. res.write(`
      `
      )
    31. res.write(`班级:${body.class}`)
    32. }else{
    33. //说明是第一次加载,需要显示表单
    34. res.write(postHtml)
    35. }
    36. res.end()
    37. })
    38. }).listen(8888)
    39. // console.log(`服务器已启动...访问:http://127.0.0.1:8888`);

    2.Web模块

            2.1 什么是Web服务器

                    Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序。

                     Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。

                    大多数Web服务器都支持服务端的脚本语言(Java、C#、php、python)等,并通过脚本语言从数据库获取数据,将结果返回给客户端浏览器。

                    目前最主流的三个Web服务器是Apache.Nginx、IlS。

            2.2 Web应用架构

     Client-客户端,一般指浏览器,浏览器可以通过HTTP协议向服务器请求数据。
     Server-服务端,一般指Web服务器,可以接收客户端请求,并向客户端发送响应数据。
     Business -业务层,通过Web服务器处理应用程序,如与数据库交互,逻辑运算,调用外部程序等。   Data -**数据层**,一般由数国库组成。

            2.3 使用Node创建Web服务器

    1. const http = require('http')
    2. const url = require('url')
    3. const fs = require('fs')
    4. http.createServer(function(request,response){
    5. let pathname = url.parse(request.url).pathname;
    6. // console.log(pathname);
    7. if(!pathname || pathname=='/'){
    8. pathname='/index.html'
    9. }
    10. //读取文件 index.html
    11. fs.readFile(pathname.substr(1),function(err,data){
    12. if(err){
    13. response.writeHead(404,{"Content-Type":"text/html"})
    14. }else{
    15. response.writeHead(200,{"Content-Type":"text/html"})
    16. response.write(data.toString())
    17. }
    18. response.end()
    19. })
    20. }).listen(8888)

           index.html文件

    1. DOCTYPE html>
    2. Document
    3. 欢迎

             2.4 使用Node创建Web客户端

    1. const http=require('http')
    2. let options={
    3. host:'localhost',
    4. port:8888,
    5. path:'/index.html'
    6. }
    7. function callback(res){
    8. var body=''
    9. res.on('data',function(truck){
    10. body+=truck
    11. })
    12. res.on('end',function(){
    13. console.log(body);
    14. })
    15. }
    16. var req=http.request(options,callback)
    17. req.end()

           运行标题2.4时 先运行标题2.3 后运行标题2.4

  • 相关阅读:
    接口项目实战
    典型数据结构-栈/队列/链表、哈希查找、二叉树(BT)、线索二叉树、二叉排序树(BST树)、平衡二叉树(AVL树)、红黑树(RB树)
    web前端网页设计与制作——华夏第一县HTML+CSS+JavaScript
    滑动窗口算法
    洛谷_P1305 新二叉树、UVA536 二叉树重建 Tree Recovery
    【JUC】9.对象内存布局
    【微信小程序】获取/设置屏幕亮度
    二、BurpSuite Proxy代理
    手撸mybatis03: xml配置的解析与注册
    区间dp--石子合并
  • 原文地址:https://blog.csdn.net/m0_62073591/article/details/126874557