小熊1986

导航

nodejs express模块的基础应用

express 基础get psot基础应用
  1. npm install express 安装express模块
  2. 导入对应的模块
  3. 使用app = express();创建需要的对象
  4. 使用app.get/post(路由地址,函数(参数1客户端连接对象,参数2服务器对象))
  5. 要获得发送的数据客户端连接对象.query获得
  6. 使用参数2.send发送给客户端数据
  7. 主要post和get 发送数据的时候的区别,多出一个headers参数,还有一个body的参数

首先编写服务器代码

//导入相关的操作
const express = require("express");
//操作相关的对象
const app = express();
//监听的port
const prot = 3000;
//监听操作
app.listen(prot,()=>{
    console.log("server is start");
})

//get 请求
/**
 * 两个参数一个客户端的请求,一个是服务器的操作
 */
app.get("/hello",(cl,sl)=>{
    //测试
    //sl.send("hello");
    //获取相关的数据对象
    console.log(cl.query);
    //服务器返回给客户端
    sl.send("success");
})

//post请求
app.post("/login",(cl,sl)=>{
    console.log(cl.query);

    cl.on("data",(data)=>{
        console.log("client send data"+data.toString());
        sl.send("server send data");
    })
});
使用nodejs自带http模块进行客户端的请求post/get方式
//使用http模块创建一个客户端进行和express交互的操作
const http = require("http");

function http_get(ip,port,url,data,callback){
    //1.创建要发送的表
    let opt = {
        host:ip,
        port:port,
        path:url + "?" + data,
        method:"GET"
    }

    /**
     * 2.使用http.request进行创建对应的对象	
     * incomingMessage是获取数据的对象
     */
    let res = http.request(opt,(incomingMessage)=>{
        //接收数据
        incomingMessage.on("data",data=>{
            //是否成功收到
            if(incomingMessage.statusCode == 200){
                callback(true,data);//返回函数
            }
        })
    })

    res.on("error",(err)=>{
        console.log("error",err);
    })

    res.end();//发送出去
}

// http_get("127.0.0.1",3000,"/hello","uname=zhangsan&upasd=123456",(is_ok,data)=>{
//     if(is_ok){
//         console.log("server is data"+data.toString());
//     }
// })

//操作post
function http_post(ip,port,url,data,body,callback){
    //创建要发送的表
    let opt = {
        host:ip,
        port:port,
        path:url + "?" + data,
        method:"POST",
        //post 多出来的操作
        headers: {
			"Content-Type": "application/x-www-form-urlencoded",//发送数据的格式
			"Content-Length": body.length//数据的长度
		}//end
    }

    /**
     * incomingMessage是获取数据的对象
     */
    let res = http.request(opt,(incomingMessage)=>{
        //接收数据
        incomingMessage.on("data",data=>{
            //是否成功收到
            if(incomingMessage.statusCode == 200){
                callback(true,data);//返回函数
            }
        })
    })

    //这里有一个部分是发送body操作
    res.write(body);

    res.on("error",(err)=>{
        console.log("error",err);
    })

    res.end();//发送出去
}

http_post("127.0.0.1", 3000,"/login","user=lisi&pasd=123465","post opt",(is_ok,data)=>{
  if(is_ok){
      console.log("server send data"+data.toString());
  }  
})

本示例参考express.js的路由部分

nodejs http 部分参考nodejs 中文网 http的部分

posted on 2020-11-30 13:00  小熊1986  阅读(60)  评论(0编辑  收藏  举报