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

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)識(shí))和一個(gè)特定的HTTP方法(GET、POST等)組成的,涉及到應(yīng)用如何處理響應(yīng)客戶端請(qǐ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請(qǐng)求方法;PATH:請(qǐng)求路徑;HANDLER:是當(dāng)路由匹配到時(shí)需要執(zhí)行的處理函數(shù)
app.METHOD(PATH, HANDLER)

接口傳參

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

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

     content-type常見有三種取值:

image.png

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

GET接口

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

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

POST接口-普通鍵值對(duì)

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

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

POST接口-JSON

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

// 使用中間件獲取JSON參數(shù)
app.use(express.json())
app.post('/post-json',(req,res) => {
  // 輸出請(qǐng)求參數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nodejs實(shí)現(xiàn)jwt的示例代碼

    nodejs實(shí)現(xiàn)jwt的示例代碼

    本文主要介紹了nodejs實(shí)現(xiàn)jwt的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • node.js中的fs.realpathSync方法使用說明

    node.js中的fs.realpathSync方法使用說明

    這篇文章主要介紹了node.js中的fs.realpathSync方法使用說明,本文介紹了fs.realpathSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • ExpressJS入門實(shí)例

    ExpressJS入門實(shí)例

    這篇文章主要介紹了ExpressJS入門實(shí)例,本文講解了創(chuàng)建項(xiàng)目、進(jìn)入目錄、安裝項(xiàng)目依賴的包、創(chuàng)建應(yīng)用程序、運(yùn)行程序等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • node.js中的fs.fchmodSync方法使用說明

    node.js中的fs.fchmodSync方法使用說明

    這篇文章主要介紹了node.js中的fs.fchmodSync方法使用說明,本文介紹了fs.fchmodSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Nodejs中調(diào)用系統(tǒng)命令、Shell腳本和Python腳本的方法和實(shí)例

    Nodejs中調(diào)用系統(tǒng)命令、Shell腳本和Python腳本的方法和實(shí)例

    這篇文章主要介紹了Nodejs中調(diào)用系統(tǒng)命令、Shell腳本和Python腳本的方法和實(shí)例,本文給出了利用子進(jìn)程調(diào)用系統(tǒng)命令、執(zhí)行系統(tǒng)命令、調(diào)用傳參數(shù)的shell腳本、調(diào)用python腳本的例子,需要的朋友可以參考下
    2015-01-01
  • Ajax獲取node服務(wù)器數(shù)據(jù)的完整步驟

    Ajax獲取node服務(wù)器數(shù)據(jù)的完整步驟

    這篇文章主要給大家介紹了關(guān)于Ajax獲取node服務(wù)器數(shù)據(jù)的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Nodejs 識(shí)別圖片類型的方法

    Nodejs 識(shí)別圖片類型的方法

    這篇文章主要介紹了Nodejs 識(shí)別圖片類型的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類示例

    nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類示例

    這篇文章主要介紹了nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類,涉及nodejs操作redis進(jìn)行緩存設(shè)置相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • Node.js中的EventEmitter類使用小結(jié)

    Node.js中的EventEmitter類使用小結(jié)

    EventEmitter 是 Node.js 中的一個(gè)核心模塊,它提供了一種實(shí)現(xiàn)事件驅(qū)動(dòng)編程的機(jī)制,它是一個(gè)基于觀察者模式的類,用于在應(yīng)用程序中處理事件和觸發(fā)事件,這篇文章主要介紹了Node.js中的EventEmitter類介紹,需要的朋友可以參考下
    2023-12-12
  • node.js中的querystring.escape方法使用說明

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

    這篇文章主要介紹了node.js中的querystring.escape方法使用說明,本文介紹了querystring.escape的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評(píng)論