node-04-server基础

简介: http协议:基于请求和响应的模式,客户端向服务端发起请求,服务端接收到请求后返回数据完成本次请求一次请求完成之后,客户端与服务器断开连接,短连接

1.http


http协议:基于请求和响应的模式,客户端向服务端发起请求,服务端接收到请求后返回数据

完成本次请求

一次请求完成之后,客户端与服务器断开连接,短连接


2.搭建服务器



// 引入http模块 --- http.js文件
let http = require("http");
let urlObj = require("url");
//创建服务器
let server = http.createServer(function (request,response) {})
// 启动服务器监听 参数1:端口号 
// 参数2:启动服务器成功之后,调用的函数
server.listen(8080,function () {
    console.log("8080--服务器启动成功");
})



3. res ,req 基本概念



req(request) 请求对象
        请求头
            请求头很短,包含本次请求的基本信息,如url地址,请求类型等
        请求体
          当post请求时,因为Post的数据量比较大,所以传递的数据会存放在请求体里
      req对象 常用属性
        1. req.url 本次请求的路径和参数 
        2. req.method  本次请求的方式
       如何通过req对象获取post请求的数据:
       node在获取post过来的数据时是分次分段获取的
    res(response) 响应对象
          响应头
            存储本次返回给前端数据的配置信息,如文件格式,编码格式等
          响应体 
           决定 向客户端返回什么内容



4. req,res代码


中文乱码需要 添加编码方式

req.url 得到客户端访问地址


// request 请求对象,包含用户的请求信息
    console.log(request.url);//访问地址
  // url模块中的parse方法解析
    // parse 将路径url解析成对象,第二个参数,如果写true,则将query这个key
    // 对应的value值,转成对象类型
   let datas = urlObj.parse(request.url,true);
//获取前端请求传递过来的数据
   console.log(datas.query);
   // 修改代码编码格式,响应数据的编码格式
    response.writeHead(200,{
        "content-type":"text/html;charset=utf-8"
    });
   //不同页面返回不同的数据
    if (request.url == "/"){
        response.end("这是首页返回的数据!");
    } else if(request.url == "/shop"){
        response.end("这是购物车返回的数据!");
    }else if(request.url == "/my"){
        response.end("这是我的页面返回的数据!");
    }else {
        response.end("该页面不存在,404");
    }



5. write end


都是响应数据给前端页面  end(字符串) write(字符串)

end会终止函数的执行,而write不会


6.调试


3PZ_@@V$2~2C(M2`[67$S~S.png





相关文章
|
Python
定义函数
定义函数。
143 5
|
机器学习/深度学习 自然语言处理 Python
GPT-3解数学题准确率升至92.5%!微软提出MathPrompter,无需微调即可打造「理科」语言模型
GPT-3解数学题准确率升至92.5%!微软提出MathPrompter,无需微调即可打造「理科」语言模型
506 0
|
SQL Oracle 关系型数据库
mysql多表查询(上)
mysql多表查询
120 0
|
前端开发
我见过的最奇葩的权限设计思路
我见过的最奇葩的权限设计思路
134 0
我见过的最奇葩的权限设计思路
|
JavaScript
剑指Offer——复杂链表的复制(JS实现)
剑指Offer——复杂链表的复制(JS实现)
240 0
剑指Offer——复杂链表的复制(JS实现)
|
机器学习/深度学习 安全 物联网
AWS Submit 2016 观感
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
1102 1
|
运维 监控 JavaScript
【直播预告】云栖社区特邀专家蒋泽银:Jpom一款低侵入式Java运维、监控软件
讲解Jpom的由来、Jpom技术架构,演示Jpom的安装使用,讲解Jpom未来的计划、提问和交流。
12932 0
|
Java
jdk9+版本的bug
今天从jvm大神"你假笨"的公众号上,看到一个jdk 9+版本的编译bug,记录一下: public class JavacEvalBug{ private static String[] array = {""}; static int test(){ System.
1437 0