node項目使用http模塊發(fā)送get-post請求方式
前言
- http模塊是node.js提供內(nèi)置模塊,可以用來發(fā)送請求
- 使用場景是本身這個node服務(wù)就是后端,調(diào)用第三方api或者其他服務(wù)使用http模塊
- http模塊和axios本質(zhì)上是一個東西,看自己怎么選擇使用
代碼實現(xiàn)-不能直接復(fù)制-看注釋
1.請求文件代碼
// 導入http模塊
const http = require("http");
// 注意基地址
// let base_url = "https://ceshi.com"
// 基地址-去掉https://前綴 - 不去會報錯
let base_url = "ceshi.com"
// get-請求 - 獲取
// 使用promise - 方便維護和管理
const requestget = () => {
return new Promise((resolve, reject) => {
// 配置項
const options = {
// 基地址
hostname: base_url,
// 默認端口-不要改
port: 80,
// 接口路徑
path: `/api/ceshi/list?參數(shù)=${"12"}&參數(shù)=${"12"}`,
// 請求方式
method: "get",
// 請求頭信息
headers: {
// 請求參數(shù)格式
"Content-Type": "application/json; charset=utf-8",
// token
Authorization: "",
},
};
// 發(fā)送請求
const getlist = http.request(options, (res) => {
res.on("data", (data) => {
// 把返回值轉(zhuǎn)換成utf-8格式
const list = Buffer.from(data).toString("utf8");
// 輸出在控制臺-json格式
process.stdout.write(list);
// 轉(zhuǎn)換數(shù)據(jù)
const getlist = JSON.parse(list);
// 返回成功結(jié)果
resolve(getlist);
});
});
// 錯誤處理
getlist.on("error", (err) => {
// 返回失敗結(jié)果
reject(err.message);
});
// 請求參數(shù)-寫入
getlist.write(postData);
// 結(jié)束請求-不寫請求發(fā)送不出去
getlist.end();
})
}
// post-請求 - 分頁查詢
// 使用promise - 方便維護和管理
const requestpost = () => {
return new Promise((resolve, reject) => {
// 請求參數(shù)
let postData = querystring.stringify({
// 頁碼
// 頁數(shù)
// 總數(shù)
// 參數(shù)
});
// 配置項
const options = {
// 基地址
hostname: base_url,
// 默認端口-不要改
port: 80,
// 接口路徑
path: "/api/ceshi/list",
// 請求方式
method: "post",
// 請求頭信息
headers: {
// 請求參數(shù)格式
"Content-Type": "application/json; charset=utf-8",
// token
Authorization: "",
},
};
// 發(fā)送請求
const getpost = http.request(options, (res) => {
res.on("data", (data) => {
// 把返回值轉(zhuǎn)換成utf-8格式
const list = Buffer.from(data).toString("utf8");
// 輸出在控制臺-json格式
process.stdout.write(list);
// 轉(zhuǎn)換數(shù)據(jù)
const getlist = JSON.parse(list);
// 返回成功結(jié)果
resolve(getlist);
});
});
// 錯誤處理
getpost.on("error", (err) => {
// 返回失敗結(jié)果
reject(err.message);
});
// 請求參數(shù)-寫入
getpost.write(postData);
// 結(jié)束請求-不寫請求發(fā)送不出去
getpost.end();
});
};2.調(diào)用
const { requestget,requestpost } = require("文件位置");
async function getpostrequest (){
// get
const res = await requestget ()
console.log("get請求結(jié)果", res);
// post
const ress = await requestpost ()
console.log("post請求結(jié)果", ress);
}細節(jié)
- 1.注意基地址配置不要帶前綴-https:// 會報錯
- 2.port 一般不用動
- 3.end()方法一定要寫,不然請求可能會發(fā)不出去
- 4.不要直接復(fù)制這么多-按照注釋請求成功在改
總結(jié)
經(jīng)過這一趟流程下來相信你也對 node項目-使用http模塊發(fā)送get-post請求 有了初步的深刻印象,但在實際開發(fā)中我 們遇到的情況肯定是不一樣的,所以我們要理解它的原理,萬變不離其宗。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于nodejs+express4.X實現(xiàn)文件下載的實例代碼
本篇文章主要介紹了詳解nodejs+express4.X的文件下載的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
nodejs環(huán)境使用Typeorm連接查詢Oracle數(shù)據(jù)
這篇文章主要介紹了nodejs環(huán)境使用Typeorm連接查詢Oracle數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
Node.js基礎(chǔ)入門之模塊與npm包管理器使用詳解
Node.js是一個基于Chrome?V8引擎的JavaScript運行時。類似于Java中的JRE,.Net中的CLR。本文將詳細為大家介紹Node.js中的模塊與npm包管理器的使用,需要的可以參考一下2022-03-03
node.js中的events.emitter.removeListener方法使用說明
這篇文章主要介紹了node.js中的events.emitter.removeListener方法使用說明,本文介紹了events.emitter.removeListener的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12
Node.js進行文件讀取與復(fù)制的系統(tǒng)總結(jié)
這篇文章主要為大家詳細介紹了Node.js中文件讀取與復(fù)制相關(guān)內(nèi)容的系統(tǒng)總結(jié),包括 同步讀取,異步讀取,復(fù)制操作等,有需要的小伙伴可以跟隨小編一起了解下2025-04-04
基于socket.io+express實現(xiàn)多房間聊天
本文給大家分享的是使用node.js,基于socket.io+express實現(xiàn)多房間聊天的代碼,非常的實用,有需要的小伙伴可以來參考下2016-03-03

