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

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

我們?nèi)サ叫『诖翱梢钥匆姲l(fā)送來的請求參數(shù)

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



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

響應的參數(shù)

總結(jié)
到此這篇關(guān)于如何通過node.js來寫接口的文章就介紹到這了,更多相關(guān)node.js寫接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs命令行參數(shù)處理模塊commander使用實例
這篇文章主要介紹了nodejs命令行參數(shù)處理模塊commander使用實例,commander是一個非常高大上的令行參數(shù)處理模塊,需要的朋友可以參考下2014-09-09
Node.js實戰(zhàn)之Buffer和Stream模塊系統(tǒng)深入剖析詳解
這篇文章主要介紹了Node.js實戰(zhàn)之Buffer和Stream模塊系統(tǒng)深入剖析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08

