如何通過node.js來寫接口詳解
前言
如果要通過node.js來寫接口的話,首先我們需要借助一個(gè)框架--express,這個(gè)框架可以幫助我們快速的創(chuàng)建web服務(wù)器,所以我們需要通過npm下載這個(gè)包。
express寫get接口
// 引入express const express = require('express') // 調(diào)用express() const app = express() // 設(shè)置請(qǐng)求對(duì)應(yīng)的處理函數(shù)--當(dāng)客戶端以get方法請(qǐng)求, //請(qǐng)求地址后面需要加/getbooks才能訪問到響應(yīng)后的數(shù)據(jù) //app.get('/getbooks')相當(dāng)于添加事件監(jiān)聽,當(dāng)用戶以get方法請(qǐng)求時(shí),地址后面需要跟/getbooks,后面的回調(diào)函數(shù)才會(huì)執(zhí)行 app.get('/getbooks', function (request, response) { let books = { "status": 200, "msg": "獲取圖書列表成功", "data": [ { "id": 1, "bookname": "西游記", "author": "吳承恩", "publisher": "北京圖書出版社" }, { "id": 2, "bookname": "紅樓夢(mèng)", "author": "曹雪芹", "publisher": "上海圖書出版社" }, { "id": 3, "bookname": "三國(guó)演義", "author": "羅貫中", "publisher": "北京圖書出版社" } ] } //response.send是express框架提供的方法,相當(dāng)于結(jié)束本次請(qǐng)求。 response.send(books) }) // 監(jiān)聽端口,啟動(dòng)web服務(wù) app.listen(8000, function () { console.log('app listening on port 8000!') })
通過localhost:8000/getbooks成為訪問到數(shù)據(jù)。
此上,我們便簡(jiǎn)單的實(shí)現(xiàn)了一個(gè)get請(qǐng)求來獲取到接口的數(shù)據(jù)。
express寫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)回來的參數(shù) response.send({ a: 1 }) })
因?yàn)檫@里我們是通過post請(qǐng)求傳遞參數(shù)的,所以這里我們不能繼續(xù)向上面的get請(qǐng)求一樣通過地址欄測(cè)試了,這里我會(huì)借助一個(gè)測(cè)試接口的工具來進(jìn)行測(cè)試,用到的工具是--apifox。
這里我們直接發(fā)送請(qǐng)求,我們會(huì)向后端發(fā)送兩個(gè)參數(shù),下面是得到響應(yīng)后的參數(shù)
我們?nèi)サ叫『诖翱梢钥匆姲l(fā)送來的請(qǐng)求參數(shù)
express寫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è)中間件來得到請(qǐng)求的參數(shù)。
測(cè)試接口
express寫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--通過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)于如何通過node.js來寫接口的文章就介紹到這了,更多相關(guān)node.js寫接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
npm?install安裝過程報(bào)錯(cuò)的實(shí)用解決辦法
最近做項(xiàng)目遇到npm install 的問題,下面這篇文章主要給大家介紹了關(guān)于npm?install安裝過程報(bào)錯(cuò)的實(shí)用解決辦法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06nodejs實(shí)現(xiàn)大文件(在線視頻)的讀取
這篇文章主要為大家詳細(xì)介紹了nodejs實(shí)現(xiàn)大文件的讀取,比如在線視頻,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Nodejs實(shí)現(xiàn)圖片上傳、壓縮預(yù)覽、定時(shí)刪除功能
本文分步驟給大家介紹了Nodejs實(shí)現(xiàn)圖片的上傳、壓縮預(yù)覽、定時(shí)刪除功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10NestJS開發(fā)核心概念Providers類基本用法詳解
這篇文章主要為大家介紹了NestJS開發(fā)核心概念Providers類基本用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08