欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js中實(shí)現(xiàn)GET和POST請(qǐng)求的代碼示例

 更新時(shí)間:2024年12月09日 11:37:14   作者:小灰灰學(xué)編程  
在很多場(chǎng)景中,我們的服務(wù)器都需要跟用戶的瀏覽器打交道,如發(fā)送驗(yàn)證碼、登錄表單提交,請(qǐng)求服務(wù)器數(shù)據(jù)一般都使用GET請(qǐng)求,表單提交到服務(wù)器一般都使用POST請(qǐng)求,本文詳細(xì)介紹了在Node.js中如何處理GET和POST請(qǐng)求,需要的朋友可以參考下

創(chuàng)建基本的服務(wù)器

const express = require('express');
const indexRouter = require('./router'); // 引入路由
const app = express();
const port = 3000;
// 掛載路由
app.use('/api', indexRouter);
app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

創(chuàng)建路由文件

const express = require('express');
const router = express.Router();

module.exports = router;

實(shí)現(xiàn)GET請(qǐng)求

// 處理GET請(qǐng)求
router.get('/get', (req, res) => {
  // 通過 req.query 客戶端發(fā)送到服務(wù)器的數(shù)據(jù)
  const query = req.query;
  console.log(query, 'query')
  res.send({
    code: 0, // 0: 請(qǐng)求成功  -1: 請(qǐng)求失敗
    msg: 'GET請(qǐng)求成功', // 請(qǐng)求的狀態(tài)描述
    data: query, // 服務(wù)器像客戶端返回?cái)?shù)據(jù)
  });
});

實(shí)現(xiàn)POST請(qǐng)求

方式1:form-data,Express默認(rèn)不會(huì)解析form-data,因?yàn)樗ǔS糜谖募蟼鳎枰~外的處理。你可以使用multer這個(gè)中間件來(lái)處理multipart/form-data(也就是form-data)類型的請(qǐng)求。multer是專門為Express設(shè)計(jì)的,用于處理多部分/表單數(shù)據(jù),這包括上傳文件。

// 設(shè)置multer存儲(chǔ)選項(xiàng)(這里只是演示,實(shí)際上你可能需要配置磁盤存儲(chǔ)或其他選項(xiàng))
const storage = multer.memoryStorage(); 
const upload = multer({ storage: storage });
// 處理POST請(qǐng)求
router.post('/upload', upload.single('file'), (req, res) => {
   // 通過 req.query 客戶端發(fā)送到服務(wù)器的數(shù)據(jù)
   const body = req.body;
   console.log(body, 'body')
   res.send({
     code: 0, // 0: 請(qǐng)求成功  -1: 請(qǐng)求失敗
     msg: 'POST請(qǐng)求成功', // 請(qǐng)求的狀態(tài)描述
     data: body, // 服務(wù)器像客戶端返回?cái)?shù)據(jù)
   });
});

方式2:urlencoded,想要獲取url-encoded請(qǐng)求體的數(shù)據(jù),需要引入對(duì)應(yīng)的中間件。

// 配置解析表單數(shù)據(jù)的中間件
app.use(express.urlencoded({extended: false}))
// 處理POST請(qǐng)求
router.post('/post', (req, res) => {
  // 通過 req.query 客戶端發(fā)送到服務(wù)器的數(shù)據(jù)
  const body = req.body;
  console.log(body, 'body')
  res.send({
    code: 0, // 0: 請(qǐng)求成功  -1: 請(qǐng)求失敗
    msg: 'POST請(qǐng)求成功', // 請(qǐng)求的狀態(tài)描述
    data: body, // 服務(wù)器像客戶端返回?cái)?shù)據(jù)
  });
});

全部代碼

index.js

const express = require('express');
const indexRouter = require('./router'); // 引入路由
const app = express();
const port = 3000;
// 配置解析表單數(shù)據(jù)的中間件
app.use(express.urlencoded({extended: false}))
// 掛載路由
app.use('/api', indexRouter);
// 啟動(dòng)服務(wù)器
app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

router.js

const express = require('express');
const multer = require('multer');
const router = express.Router();
// 設(shè)置multer存儲(chǔ)選項(xiàng)(這里只是演示,實(shí)際上你可能需要配置磁盤存儲(chǔ)或其他選項(xiàng))
const storage = multer.memoryStorage(); // 使用內(nèi)存存儲(chǔ),適用于小文件或不需要持久化的場(chǎng)景
const upload = multer({ storage: storage });
// 處理GET請(qǐng)求
router.get('/get', (req, res) => {
  // 通過 req.query 客戶端發(fā)送到服務(wù)器的數(shù)據(jù)
  const query = req.query;
  console.log(query, 'query')
  res.send({
    code: 0, // 0: 請(qǐng)求成功  -1: 請(qǐng)求失敗
    msg: 'GET請(qǐng)求成功', // 請(qǐng)求的狀態(tài)描述
    data: query, // 服務(wù)器像客戶端返回?cái)?shù)據(jù)
  });
});
// 處理POST請(qǐng)求
router.post('/upload', upload.single('file'), (req, res) => {
   // 通過 req.query 客戶端發(fā)送到服務(wù)器的數(shù)據(jù)
   const body = req.body;
   console.log(body, 'body')
   res.send({
     code: 0, // 0: 請(qǐng)求成功  -1: 請(qǐng)求失敗
     msg: 'POST請(qǐng)求成功', // 請(qǐng)求的狀態(tài)描述
     data: body, // 服務(wù)器像客戶端返回?cái)?shù)據(jù)
   });
});
// 處理POST請(qǐng)求
router.post('/post', (req, res) => {
  // 通過 req.query 客戶端發(fā)送到服務(wù)器的數(shù)據(jù)
  const body = req.body;
  console.log(body, 'body')
  res.send({
    code: 0, // 0: 請(qǐng)求成功  -1: 請(qǐng)求失敗
    msg: 'POST請(qǐng)求成功', // 請(qǐng)求的狀態(tài)描述
    data: body, // 服務(wù)器像客戶端返回?cái)?shù)據(jù)
  });
});
module.exports = router;

到此這篇關(guān)于node.js中實(shí)現(xiàn)GET和POST請(qǐng)求的代碼示例的文章就介紹到這了,更多相關(guān)node.js實(shí)現(xiàn)GET和POST請(qǐng)求內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nodejs基礎(chǔ)之多進(jìn)程實(shí)例詳解

    nodejs基礎(chǔ)之多進(jìn)程實(shí)例詳解

    這篇文章主要介紹了nodejs基礎(chǔ)之多進(jìn)程,結(jié)合實(shí)例形式分析了nodejs多進(jìn)程的概念、原理、相關(guān)函數(shù)使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • VsCode與Node.js知識(shí)點(diǎn)詳解

    VsCode與Node.js知識(shí)點(diǎn)詳解

    在本篇文章中小編給大家分享了關(guān)于VsCode與Node.js的相關(guān)知識(shí)點(diǎn)以及安裝等內(nèi)容,需要的朋友們可以參考下。
    2019-09-09
  • NodeJS學(xué)習(xí)筆記之Connect中間件模塊(一)

    NodeJS學(xué)習(xí)筆記之Connect中間件模塊(一)

    這是一個(gè)目錄概要,里面記錄著NodeJS的基礎(chǔ)知識(shí)部分,今天這篇文章以及后續(xù)的幾篇,將是一個(gè)進(jìn)階系列,讓我們建立一個(gè)由淺入深的學(xué)習(xí)的過程,
    2015-01-01
  • node.js中的buffer.slice方法使用說(shuō)明

    node.js中的buffer.slice方法使用說(shuō)明

    這篇文章主要介紹了node.js中的buffer.slice方法使用說(shuō)明,本文介紹了buffer.slice的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js中的Buffer對(duì)象及創(chuàng)建方式

    Node.js中的Buffer對(duì)象及創(chuàng)建方式

    node.js提供了一個(gè)Buffer對(duì)象來(lái)提供對(duì)二進(jìn)制數(shù)據(jù)的操作,Buffer?類的實(shí)例類似于整數(shù)數(shù)組,但?Buffer?的大小是固定的、且在?V8?堆外分配物理內(nèi)存。本文給大家介紹Node.js中的Buffer對(duì)象及創(chuàng)建方式,感興趣的朋友一起看看吧
    2022-01-01
  • NodeJS學(xué)習(xí)筆記之(Url,QueryString,Path)模塊

    NodeJS學(xué)習(xí)筆記之(Url,QueryString,Path)模塊

    今天我們來(lái)看一下在nodejs中路徑的相關(guān)操作方法。在我們開發(fā)過程中路徑主要有:URL路徑,在瀏覽器中進(jìn)行使用,當(dāng)然這個(gè)也包含查詢字符串QueryString的相關(guān)操作;而另一種是磁盤路徑,主要用于文件等等進(jìn)行操作,我們稱為Path,所以我將它們放在一起進(jìn)行總結(jié)學(xué)習(xí)。
    2015-01-01
  • nodejs如何將高版本降為低版本

    nodejs如何將高版本降為低版本

    在遇到項(xiàng)目依賴低版本Node.js時(shí),直接安裝低版本可能會(huì)遇到困難,本文提供了一種通過卸載當(dāng)前高版本Node.js并使用NVM(Node Version Manager)來(lái)管理和安裝低版本Node.js的方法,首先,需要卸載現(xiàn)有的Node.js環(huán)境并清理相關(guān)文件
    2024-10-10
  • Node.js系列之連接DB的方法(3)

    Node.js系列之連接DB的方法(3)

    這篇文章主要為大家詳細(xì)介紹了Node.js系列之連接DB的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Node.js + express實(shí)現(xiàn)上傳大文件的方法分析【圖片、文本文件】

    Node.js + express實(shí)現(xiàn)上傳大文件的方法分析【圖片、文本文件】

    這篇文章主要介紹了Node.js + express實(shí)現(xiàn)上傳大文件的方法,結(jié)合實(shí)例形式分析了Node.js + express針對(duì)圖片、文本文件上傳操作實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-03-03
  • 前端node Session和JWT鑒權(quán)登錄示例詳解

    前端node Session和JWT鑒權(quán)登錄示例詳解

    關(guān)于前端鑒權(quán)登錄是比較常見的需求了,本文將從服務(wù)端渲染和前后端分離的不同角度下演示鑒權(quán),為大家介紹前端node Session和JWT鑒權(quán)登錄示例詳解
    2022-07-07

最新評(píng)論