1. 程式人生 > 實用技巧 >nodejs express模組的基礎應用

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的部分