如何通過(guò)node.js來(lái)寫(xiě)接口詳解
前言
如果要通過(guò)node.js來(lái)寫(xiě)接口的話(huà),首先我們需要借助一個(gè)框架--express,這個(gè)框架可以幫助我們快速的創(chuàng)建web服務(wù)器,所以我們需要通過(guò)npm下載這個(gè)包。
express寫(xiě)get接口
// 引入express
const express = require('express')
// 調(diào)用express()
const app = express()
// 設(shè)置請(qǐng)求對(duì)應(yīng)的處理函數(shù)--當(dāng)客戶(hù)端以get方法請(qǐng)求,
//請(qǐng)求地址后面需要加/getbooks才能訪(fǎng)問(wèn)到響應(yīng)后的數(shù)據(jù)
//app.get('/getbooks')相當(dāng)于添加事件監(jiān)聽(tīng),當(dāng)用戶(hù)以get方法請(qǐng)求時(shí),地址后面需要跟/getbooks,后面的回調(diào)函數(shù)才會(huì)執(zhí)行
app.get('/getbooks', function (request, response) {
let books = {
"status": 200,
"msg": "獲取圖書(shū)列表成功",
"data": [
{
"id": 1,
"bookname": "西游記",
"author": "吳承恩",
"publisher": "北京圖書(shū)出版社"
},
{
"id": 2,
"bookname": "紅樓夢(mèng)",
"author": "曹雪芹",
"publisher": "上海圖書(shū)出版社"
},
{
"id": 3,
"bookname": "三國(guó)演義",
"author": "羅貫中",
"publisher": "北京圖書(shū)出版社"
}
]
}
//response.send是express框架提供的方法,相當(dāng)于結(jié)束本次請(qǐng)求。
response.send(books)
})
// 監(jiān)聽(tīng)端口,啟動(dòng)web服務(wù)
app.listen(8000, function () {
console.log('app listening on port 8000!')
})通過(guò)localhost:8000/getbooks成為訪(fǎng)問(wèn)到數(shù)據(jù)。

此上,我們便簡(jiǎn)單的實(shí)現(xiàn)了一個(gè)get請(qǐng)求來(lái)獲取到接口的數(shù)據(jù)。
express寫(xiě)post接口--鍵值對(duì)參數(shù)
當(dāng)請(qǐng)求頭中的content-type為x-www-form-urlencoded時(shí),表示上傳的為普通鍵值對(duì)參數(shù)
// 引入express
const express = require('express')
// 調(diào)用express()
const app = express()
// 使用中間件--請(qǐng)求的格式為普通鍵值對(duì)格式
app.use(express.urlencoded())
// 接口2--post普通鍵值對(duì)格式a=1&b=2
app.post('/addbooks', (request, response) => {
//request.body發(fā)送的請(qǐng)求的參數(shù)
console.log('請(qǐng)求返回', request.body)
//response.send響應(yīng)回來(lái)的參數(shù)
response.send({ a: 1 })
})因?yàn)檫@里我們是通過(guò)post請(qǐng)求傳遞參數(shù)的,所以這里我們不能繼續(xù)向上面的get請(qǐng)求一樣通過(guò)地址欄測(cè)試了,這里我會(huì)借助一個(gè)測(cè)試接口的工具來(lái)進(jìn)行測(cè)試,用到的工具是--apifox。
這里我們直接發(fā)送請(qǐng)求,我們會(huì)向后端發(fā)送兩個(gè)參數(shù),下面是得到響應(yīng)后的參數(shù)

我們?nèi)サ叫『诖翱梢钥匆?jiàn)發(fā)送來(lái)的請(qǐng)求參數(shù)

express寫(xiě)post接口--json格式的參數(shù)
// 引入express
const express = require('express')
// 調(diào)用express()
const app = express()
// 會(huì)自動(dòng)加入req.body屬性,這個(gè)屬性中就包含了post請(qǐng)求所傳入的參數(shù),格式為json格式
app.use(express.json())
// 接口3--post-json格式
app.post('/add-json', (request, response) => {
console.log('請(qǐng)求返回', request.body)
response.send({ "name": "xxx" })
})這里我們依舊會(huì)加入一個(gè)中間件來(lái)得到請(qǐng)求的參數(shù)。
測(cè)試接口



express寫(xiě)post接口--form-data文件上傳
// 引入express
const express = require('express')
// 調(diào)用express()
const app = express()
// 引入包
const multer = require('multer');
// 配置
// uploads表示一個(gè)目錄名,你也可以設(shè)置成其它的
const upload = multer({ dest: 'uploads/' }) // 上傳的文件會(huì)保存在這個(gè)目錄下
// 接口4--通過(guò)post請(qǐng)求進(jìn)行文件的上傳
app.post('/add-file', upload.single('img'), (request, response) => {
console.log(request.body)
console.log(request.file)
response.send({ name: "小紅" })
})測(cè)試接口

響應(yīng)的參數(shù)

總結(jié)
到此這篇關(guān)于如何通過(guò)node.js來(lái)寫(xiě)接口的文章就介紹到這了,更多相關(guān)node.js寫(xiě)接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs命令行參數(shù)處理模塊commander使用實(shí)例
這篇文章主要介紹了nodejs命令行參數(shù)處理模塊commander使用實(shí)例,commander是一個(gè)非常高大上的令行參數(shù)處理模塊,需要的朋友可以參考下2014-09-09
nodeJS代碼實(shí)現(xiàn)計(jì)算交社保是否合適
本文通過(guò)nodejs的一個(gè)具體示例來(lái)對(duì)比分析現(xiàn)階段我們交社保合不合適,主要是對(duì)nodejs的一個(gè)小的應(yīng)用,當(dāng)然大家也可以改成其他語(yǔ)言的,程序猿們,來(lái)算算吧。2015-03-03
詳解如何使用Node.js實(shí)現(xiàn)熱重載頁(yè)面
這篇文章主要介紹了詳解如何使用Node.js實(shí)現(xiàn)熱重載頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
Node.js API詳解之 assert模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 assert模塊用法,結(jié)合實(shí)例形式分析了Node.js API中assert模塊基本函數(shù)、功能、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05
詳解express + mock讓前后臺(tái)并行開(kāi)發(fā)
這篇文章主要介紹了詳解express + mock讓前后臺(tái)并行開(kāi)發(fā),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Node.js實(shí)戰(zhàn)之Buffer和Stream模塊系統(tǒng)深入剖析詳解
這篇文章主要介紹了Node.js實(shí)戰(zhàn)之Buffer和Stream模塊系統(tǒng)深入剖析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

