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

nodejs使用Express框架寫后端接口的全過程

 更新時(shí)間:2022年05月01日 09:28:38   作者:劉溜溜  
最近學(xué)習(xí)了基于前后端分離的開發(fā)模式,我前端使用Vue框架,后端使用nodejs開發(fā)API接口,下面這篇文章主要給大家介紹了關(guān)于nodejs使用Express框架寫后端接口的相關(guān)資料,需要的朋友可以參考下

在寫接口前,我們要明白什么是接口,在前端我們叫接口,而后端就叫路由,這其實(shí)是指同一個(gè)東西。

路由和接口

路由(Routing)是由一個(gè)URL(或者叫路徑標(biāo)識)和一個(gè)特定的HTTP方法(GET、POST等)組成的,涉及到應(yīng)用如何處理響應(yīng)客戶端請求。每一個(gè)路由都可以有一個(gè)或多個(gè)處理器函數(shù),當(dāng)匹配到路由時(shí),這些個(gè)函數(shù)將被執(zhí)行。

// 引入express
const express = require('express')
//創(chuàng)建express實(shí)例存入變量app ,調(diào)用express
const app = express()
// 定義路由
//METHOD:是一個(gè)http請求方法;PATH:請求路徑;HANDLER:是當(dāng)路由匹配到時(shí)需要執(zhí)行的處理函數(shù)
app.METHOD(PATH, HANDLER)

接口傳參

我們使用ajax請求向服務(wù)器接口傳參,按http協(xié)議的規(guī)定,每個(gè)都有三個(gè)部分:

  • 請求行:保存了請求方式,地址,可以以查詢字符串的格式附加一部分?jǐn)?shù)據(jù)。
  • 請求頭:它可以附加很多信息,其中content-type用來約定請求體中保存的數(shù)據(jù)格式。

     content-type常見有三種取值:

image.png

  • 請求體:本次請求攜帶的參數(shù)。至于這些參數(shù)到了后端應(yīng)該如何解析出來,由請求頭中的content-type來決定。

GET接口

express框架會(huì)自動(dòng)幫我們收集get類型的接口從url地址中傳遞的查詢字符串參數(shù),并自動(dòng)保存在req對象的query屬性中,我們直接獲取即可。

app.get('/get',(req,res) => {
  // 輸出請求參數(shù)
  console.log(req.query)
  //結(jié)束本次響應(yīng)并返回內(nèi)容
  res.send('hello world!')
})

POST接口-普通鍵值對

具體來說當(dāng)請求頭的content-type為x-www-form-urlencoded時(shí),表示上傳的普通簡單鍵值對 。

// 使用中間件獲取普通鍵值對參數(shù)
app.use(express.urlencoded())
app.post('/add',(req,res) => {
  // 輸出請求參數(shù)
  //app.use(....)之后,在res中就會(huì)多出一個(gè)屬性res.body,里面存放著鍵值對參數(shù)
  console.log(req.body)
  //結(jié)束本次響應(yīng)并返回內(nèi)容
  res.send("hello world!")
})

POST接口-JSON

在post傳遞參數(shù)時(shí),如果要傳入的參數(shù)比較復(fù)雜(多級嵌套),例如表單數(shù)據(jù),則可以使用json格式上傳。

// 使用中間件獲取JSON參數(shù)
app.use(express.json())
app.post('/post-json',(req,res) => {
  // 輸出請求參數(shù)
  console.log(req.body)
  //結(jié)束本次響應(yīng)并返回內(nèi)容
  res.send("hello world!")
})

POST接口-form-data文件上傳

如果post涉及文件上傳操作,則需要在服務(wù)器端額外使用第三方multer這個(gè)包(不屬于express)來獲取上傳的信息。

// 引入包
const multer = require('multer')
// 配置 上傳的文件會(huì)保存到unloads這個(gè)文件夾下
const upload = multer({dest:'unloads/'})
//upload.single表示單文件上傳,cover表示本次上傳的數(shù)據(jù)
app.post('/post-file',upload.single('cover'),(req,res) => {
  // req.file記錄了上傳文件的信息
  console.log(req.file)
  //結(jié)束本次響應(yīng)并返回內(nèi)容
  res.send({message:"ok"})
})
  • 如果當(dāng)前目錄下沒有uploads,它會(huì)自動(dòng)創(chuàng)建uploads這個(gè)文件夾
  • upload.single只是處理了文件的上傳。你仍可以通過req.body來獲取其它參數(shù)

總結(jié)

到此這篇關(guān)于nodejs使用Express框架寫后端接口的文章就介紹到這了,更多相關(guān)nodejs Express后端接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于node編寫excel讀取和導(dǎo)出的小工具

    基于node編寫excel讀取和導(dǎo)出的小工具

    這篇文章主要為大家詳細(xì)介紹了如何基于node編寫一個(gè)小工具,可以實(shí)現(xiàn)excel讀取和導(dǎo)出,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2024-11-11
  • Nodejs調(diào)用Dll模塊的方法

    Nodejs調(diào)用Dll模塊的方法

    這篇文章主要介紹了Nodejs調(diào)用Dll模塊的方法,在文中給大家提到了nodejs通過ffi調(diào)用dll模塊的代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • Node模塊化開發(fā)實(shí)例解析

    Node模塊化開發(fā)實(shí)例解析

    這篇文章主要為大家介紹了Node模塊化開發(fā)實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • node.js中的querystring.unescape方法使用說明

    node.js中的querystring.unescape方法使用說明

    這篇文章主要介紹了node.js中的querystring.unescape方法使用說明,本文介紹了querystring.unescape的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js創(chuàng)建Web、TCP服務(wù)器

    Node.js創(chuàng)建Web、TCP服務(wù)器

    這篇文章主要介紹了用Node.js創(chuàng)建Web服務(wù)器和TCP服務(wù)器的方法和處理技巧,需要的讀者們學(xué)習(xí)一下吧。
    2017-12-12
  • Node.js圖片驗(yàn)證碼識別功能

    Node.js圖片驗(yàn)證碼識別功能

    現(xiàn)在越來越多的網(wǎng)站采取圖片驗(yàn)證碼,防止機(jī)器惡意向服務(wù)端發(fā)送請求,但是常規(guī)的圖片驗(yàn)證碼也不是非常安全了,有非常多第三方庫可以對圖片上的數(shù)字文字等進(jìn)行識別,下面小編給大家分享Node.js圖片驗(yàn)證碼識別功能實(shí)現(xiàn),感興趣的朋友一起看看吧
    2024-04-04
  • 如何正確使用Nodejs 的 c++ module 鏈接到 OpenSSL

    如何正確使用Nodejs 的 c++ module 鏈接到 OpenSSL

    這篇文章主要介紹了如何正確使用Nodejs 的 c++ module 鏈接到 OpenSSL,需要的朋友可以參考下
    2014-08-08
  • Nodejs excel(.xlsx) 文件的讀寫方式

    Nodejs excel(.xlsx) 文件的讀寫方式

    這篇文章主要介紹了Nodejs excel(.xlsx) 文件的讀寫方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 利用Node.js對文件進(jìn)行重命名

    利用Node.js對文件進(jìn)行重命名

    最近工作中遇到了對文件進(jìn)行重命名的需求,后通過node.js實(shí)現(xiàn)了,所以下面這篇文章主要給大家介紹了利用Node.js對文件進(jìn)行重命名的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • 前端常見面試題之a(chǎn)sync/await和promise的區(qū)別

    前端常見面試題之a(chǎn)sync/await和promise的區(qū)別

    async/await是異步代碼的新方式,以前的方法有回調(diào)函數(shù)和Promise,下面這篇文章主要給大家介紹了關(guān)于前端常見面試題之a(chǎn)sync/await和promise區(qū)別的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07

最新評論

余干县| 玉田县| 宣化县| 鹤庆县| 云和县| 军事| 汤阴县| 阜宁县| 江阴市| 绍兴市| 嵊泗县| 二连浩特市| 磐安县| 错那县| 新龙县| 栾川县| 安阳县| 互助| 黑山县| 民勤县| 梁河县| 阜宁县| 姚安县| 周宁县| 澄江县| 华安县| 洛川县| 集安市| 天柱县| 衡水市| 和硕县| 临武县| 庆城县| 浑源县| 嘉义市| 綦江县| 宁强县| 基隆市| 萍乡市| 闵行区| 枞阳县|