最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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) => {
  // 通過(guò) 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)類(lèi)型的請(qǐng)求。multer是專(zhuān)門(mén)為Express設(shè)計(jì)的,用于處理多部分/表單數(shù)據(jù),這包括上傳文件。

// 設(shè)置multer存儲(chǔ)選項(xiàng)(這里只是演示,實(shí)際上你可能需要配置磁盤(pán)存儲(chǔ)或其他選項(xiàng))
const storage = multer.memoryStorage(); 
const upload = multer({ storage: storage });
// 處理POST請(qǐng)求
router.post('/upload', upload.single('file'), (req, res) => {
   // 通過(guò) 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) => {
  // 通過(guò) 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í)際上你可能需要配置磁盤(pán)存儲(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) => {
  // 通過(guò) 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) => {
   // 通過(guò) 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) => {
  // 通過(guò) 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)文章

  • express中間件加載機(jī)制示例詳解

    express中間件加載機(jī)制示例詳解

    中間件是一種方法,可以接收客戶端發(fā)來(lái)的請(qǐng)求,可以對(duì)請(qǐng)求做出響應(yīng),也可以將請(qǐng)求繼續(xù)交給下一個(gè)中間件繼續(xù)處理,下面這篇文章主要給大家介紹了關(guān)于express中間件加載機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • node.js的exports、module.exports與ES6的export、export default深入詳解

    node.js的exports、module.exports與ES6的export、export default深入詳解

    這篇文章主要給大家介紹了關(guān)于node.js中的exports、module.exports與ES6中的export、export default到時(shí)是什么的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • ndm:NPM的桌面GUI應(yīng)用程序

    ndm:NPM的桌面GUI應(yīng)用程序

    今天小編就為大家分享一篇關(guān)于ndm:NPM的桌面GUI應(yīng)用程序,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • 十大 Node.js 的 Web 框架(快速提升工作效率)

    十大 Node.js 的 Web 框架(快速提升工作效率)

    Node.js 系統(tǒng)含有多種不同的結(jié)構(gòu),如 MVC、全棧、REST API 和生成器等。這些結(jié)構(gòu)不僅提升了 Web 應(yīng)用的開(kāi)發(fā)效率,也優(yōu)化了開(kāi)發(fā)過(guò)程。在這里,我們收集整理了十個(gè)高效的 Node.js 框架,希望對(duì)你有幫助。
    2017-06-06
  • 詳解nodejs模板引擎制作

    詳解nodejs模板引擎制作

    本篇文章主要介紹了nodejs模板引擎制作 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Node對(duì)CommonJS的模塊規(guī)范

    Node對(duì)CommonJS的模塊規(guī)范

    這篇文章主要介紹了Node對(duì)CommonJS的模塊規(guī)范,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 完整地Docker化Node.js項(xiàng)目的部署流程

    完整地Docker化Node.js項(xiàng)目的部署流程

    在現(xiàn)代微服務(wù)架構(gòu)中,將 Node.js 應(yīng)用容器化可以方便部署、管理和擴(kuò)展,本文將展示如何完整地 Docker 化 Node.js 項(xiàng)目,并提供一個(gè)一鍵部署腳本,需要的朋友可以參考下
    2025-10-10
  • nodejs使用async模塊同步執(zhí)行的方法

    nodejs使用async模塊同步執(zhí)行的方法

    今天小編就為大家分享一篇關(guān)于nodejs使用async模塊同步執(zhí)行的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • VS?Code擴(kuò)展Code?Runner?MCP?Server來(lái)了

    VS?Code擴(kuò)展Code?Runner?MCP?Server來(lái)了

    韓老師介紹MCP協(xié)議和其在AI領(lǐng)域的重要性,并分享了自己開(kāi)發(fā)的CodeRunnerMCPServer和YoemanGenerator?for?MCP,這些工具可以幫助開(kāi)發(fā)者更方便地使用MCP協(xié)議
    2025-05-05
  • 垃圾回收器的相關(guān)知識(shí)點(diǎn)總結(jié)

    垃圾回收器的相關(guān)知識(shí)點(diǎn)總結(jié)

    本文是小編在網(wǎng)絡(luò)上整理的關(guān)于垃圾回收器的相關(guān)知識(shí)點(diǎn),很多語(yǔ)言和程序都用的到,有興趣的可以學(xué)習(xí)下。
    2018-05-05

最新評(píng)論

十堰市| 容城县| 浮梁县| 东阿县| 祁连县| 广平县| 奈曼旗| 页游| 阿拉善盟| 宁乡县| 将乐县| 泰和县| 斗六市| 青川县| 清流县| 前郭尔| 麟游县| 北流市| 安图县| 龙里县| 紫金县| 辽源市| 澳门| 门源| 白玉县| 锦州市| 陕西省| 望城县| 乃东县| 福清市| 鸡泽县| 南乐县| 城固县| 宜兴市| 泸州市| 阜康市| 九龙坡区| 壤塘县| 翁牛特旗| 濮阳县| 双桥区|