版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
項目九接口的設(shè)計與開發(fā)任務(wù)一Node.js基礎(chǔ)Node.jsBasicsNode.js保留了JavaScript在Web瀏覽器端中所使用的大部分API,本節(jié)介紹Node.js在Windows環(huán)境下使用安裝向?qū)нM行安裝與配置。Node.js腳本創(chuàng)建Web服務(wù)需要用到http等模塊。通過路由配置來講解GET請求和POST請求,使用node.js編寫小程序數(shù)據(jù)接口,對接小程序的網(wǎng)絡(luò)請求,實現(xiàn)小程序訪問數(shù)據(jù)接口的過程。項目九接口的設(shè)計與開發(fā)任務(wù)描述JavaScript運行時非阻塞異步I/O模型事件驅(qū)動CPU密集&I/O密集Node.js工作模型01是什么02JavaScript脫離瀏覽器Web服務(wù)器項目好在哪03WebServer本地代碼構(gòu)建實用工具開發(fā)在哪里用
Node.js就是運行在服務(wù)端的JavaScript,是一個真正高效的Web開發(fā)平臺。在Node.js之前,JavaScript只能運行在瀏覽器中,作為網(wǎng)頁腳本使用,為網(wǎng)頁添加一些特效,或者和服務(wù)器進行通信。有了Node.js以后,JavaScript就可以脫離瀏覽器,像其它編程語言一樣直接在計算機上使用,再也不受瀏覽器的限制。Node.js基礎(chǔ)Node.js不是一門新的編程語言,也不是一個JavaScript框架,它是一套JavaScript運行環(huán)境,用來支持JavaScript代碼的執(zhí)行。用編程術(shù)語來講,Node.js是一個JavaScript運行時(Runtime)。Node.js是一個基于ChromeJavaScript運行時建立的一個平臺。Node.js是一個事件驅(qū)動I/O服務(wù)端JavaScript環(huán)境,基于Google的V8引擎,V8引擎執(zhí)行Javascript的速度非常快,性能非常好。.js文件.json文件.node文件拓展名判斷解析為對象讀取main指定的路徑解析package.json將index作為默認(rèn)值查看index.jsindex.jsonindex.node查找入口文件在父目錄中重復(fù)以上邏輯輪詢后儂舊失敗則報錯進入下一個模塊路徑Node.js基礎(chǔ)可以根據(jù)不同平臺系統(tǒng)選擇需要的Node.js安裝包,用戶可以根據(jù)當(dāng)前所使用的計算機環(huán)境選擇下載相應(yīng)的Node.js版本,設(shè)置安裝目錄進行安裝即可。安裝完之后,可以在命令提示符工具里測試安裝結(jié)果,測試代碼如下所示。Node.js基礎(chǔ)node-v一個簡潔而靈活的node.jsWeb應(yīng)用框架提供了一系列強大特性幫助你創(chuàng)建各種Web應(yīng)用豐富的HTTP工具Express框架核心特性:可以設(shè)置中間件來響應(yīng)HTTP請求。定義了路由表用于執(zhí)行不同的HTTP請求動作??梢酝ㄟ^向模板傳遞參數(shù)來動態(tài)渲染HTML頁面。Express框架以上命令會將Express框架安裝在當(dāng)前目錄的node_modules目錄中,node_modules目錄下會自動創(chuàng)建express目錄。npm的全稱是NodePackageManager,是一個NodeJS包管理和分發(fā)工具。Express框架npminstallexpress--save以下幾個重要的模塊是需要與express框架一起安裝的:body-parser-node.js中間件,用于處理JSON,Raw,Text和URL編碼的數(shù)據(jù)。cookie-parser-這就是一個解析Cookie的工具。通過req.cookies可以取到傳過來的cookie,并把它們轉(zhuǎn)成對象。multer-node.js中間件,用于處理enctype="multipart/form-data"(設(shè)置表單的MIME編碼)的表單數(shù)據(jù)。在Node.js中,中間件是一種模塊化的軟件組件,用于處理HTTP請求和響應(yīng)。中間件是Express.js和許多其他Node.jsWeb框架的核心概念之一。它允許在請求到達路由處理程序之前或響應(yīng)發(fā)送到客戶端之前執(zhí)行代碼。中間件用于執(zhí)行各種任務(wù),如請求日志記錄、身份驗證、數(shù)據(jù)轉(zhuǎn)換和錯誤處理。瀏覽器請求響應(yīng)中間件1中間件3next()中間件4中間件3路由處理完畢響應(yīng)請求next()next()next()響應(yīng)中間件中間件
本質(zhì):一個function處理函數(shù),Express中間件的格式如下。app.get('/',function(req,res,next){next();})constexpress=require('express')constapp=express()//定義一個最簡單的中間件函數(shù)constthing=function(req,res,next){console.log('這是中間件函數(shù)');//把流轉(zhuǎn)關(guān)系,轉(zhuǎn)交給下一個中間件或路由next()}創(chuàng)建Node.js項目步驟1:VisualStudioCode
(VSCode)是Microsoft開發(fā)的跨平臺腳本編輯器。它與PowerShell擴展相結(jié)合,提供了豐富的交互式腳本編輯體驗,從而可以更輕松地編寫可靠的PowerShell腳本。npminit-y創(chuàng)建Node.js項目步驟2:在VSCode編輯器點擊工具欄中的"終端"->“新建終端”,可以在工具中看到新建的終端界面,在powershell工具中運行如下命令,初始化包管理配置文件。npminstallexpress--save創(chuàng)建Node.js項目步驟3:安裝Express框架。Web應(yīng)用程序Express是一個保持最小規(guī)模的靈活的Node.jsWeb應(yīng)用程序開發(fā)框架。在powershell工具中運行如下命令,安裝express框架。constexpress=require('express')//導(dǎo)入express模塊constapp=express()//創(chuàng)建express的服務(wù)器實例app.listen(3000,()=>{
//調(diào)用app.listen方法,指定端口號并啟動web服務(wù)器
console.log('serverisrunning')})創(chuàng)建Node.js項目步驟4:在
api_server
項目根目錄,新建app.js頁面,作為整個項目的入口文件。在app.js頁面初編寫如下的代碼:nodeapp.js創(chuàng)建Node.js項目步驟5:運行node.js程序。node.js程序運行方式有多種,本書主要介紹用node或nodemon命令運行。在powershell工具中輸入以下命令,按<enter>鍵后,即可查看運行結(jié)果。nodemon是一個Node.js應(yīng)用程序的監(jiān)視工具,nodemon可以自動檢測到運行文件更改,通過自動重新啟動應(yīng)用程序來調(diào)試基于node.js的應(yīng)用程序。在powershell工具中輸入以下命令,安裝nodemon。npminstallnodemon-g在powershell工具使用nodemon啟動app.js,代碼如下所示。nodemonapp.js創(chuàng)建Node.js項目express.static(root,[options])例如,通過如下代碼就可以將public目錄下的圖片、CSS文件、JavaScript文件對外開放訪問了:app.use(express.static('public'))獲取項目靜態(tài)資源網(wǎng)站后臺為了提供圖像、CSS文件和JavaScript文件之類的靜態(tài)文件,可以使用用Express中的express.static內(nèi)置中間件函數(shù),函數(shù)具體語法如下:Postman主要是用來模擬各種HTTP請求的(如:get/post/delete/put..等等),Postman與瀏覽器的區(qū)別在于有的瀏覽器不能輸出JSON格式,而Postman更直觀接口返回的結(jié)果。下面使用Postman測試獲取項目靜態(tài)資源。獲取項目靜態(tài)資源感
謝
觀
看THANK項目九接口的設(shè)計與開發(fā)任務(wù)二路由配置RoutingConfiguration任務(wù)描述項目九接口的設(shè)計與開發(fā)路由是Express框架中最重要的功能之一,是指確定應(yīng)用程序如何響應(yīng)客戶端對特定端點的請求,該端點是URL(或路徑)和特定的HTTP請求方法(GET、POST等)。每個路由可以有一個或多個處理函數(shù),當(dāng)路由匹配時執(zhí)行。什么是路由傳統(tǒng)的Web應(yīng)用:每個不同的頁面都對應(yīng)一個不同的URL地址,當(dāng)用戶點擊鏈接或輸入不同的URL
時,瀏覽器會向服務(wù)器發(fā)送請求,服務(wù)器返回對應(yīng)的頁面內(nèi)容,然后瀏覽器進行頁面
的刷新和渲染。缺點:①每次跳轉(zhuǎn)頁面都需要向服務(wù)器發(fā)送請求,會造成頁面的刷新
②用戶體驗不夠流暢。在單頁面應(yīng)用:整個應(yīng)用只有一個HTML頁面(或模板),界面內(nèi)容都是通過動態(tài)加載數(shù)據(jù)和更新DOM來實現(xiàn)的。當(dāng)用戶點擊鏈接或輸入不同的URL時,頁面不會刷新,而是通過路由系統(tǒng)將用戶導(dǎo)航到對應(yīng)的視圖或頁面,實現(xiàn)局部內(nèi)容的更新,從而提供更好的用戶體驗。
路由(Routing):指根據(jù)不同的URL地址,將用戶導(dǎo)航到不同的頁面或視圖的過程。app.METHOD(PATH,HANDLER)路由配置的概念
其中,app是一個實例express。METHOD是一個HTTP請求方法,小寫。PATH是服務(wù)器上的路徑。HANDLER是路由匹配時執(zhí)行的回調(diào)函數(shù)。打開api_server項目,在app.js頁面增加以下代碼,展示了如何處理GET請求并返回"HelloWorld"。app.get('/api',(req,res)=>{res.send('HelloWorld');});在postman地址欄,輸入:3000/api,即可使用GET請求并返回"HelloWorld"結(jié)果,運行結(jié)果如下圖所示。路由配置的概念
在很多場景中,服務(wù)器都需要跟用戶的瀏覽器打交道,如表單提交,表單提交到服務(wù)器一般都使用GET/POST請求。//1.GET請求app.use('/api/gettest',(req,res)=>{
constdata=['科技是第一生產(chǎn)力','科技興國','創(chuàng)新引領(lǐng)發(fā)展']
constindex=Math.floor(Math.random()*data.length)
res.send({
msg:'success',
data:data[index]
})})GET請求方式
在postman地址欄,輸入/api/gettest,即可使用GET請求并返回結(jié)果,運行結(jié)果如下圖所示。GET請求方式
由于GET請求直接被嵌入在路徑中,URL是完整的請求路徑,包括了?后面的部分,因此可以手動解析后面的內(nèi)容作為GET請求的參數(shù)。//2.GET請求app.use('/api/gettest2',(req,res)=>{
console.log('請求參數(shù):',req.query)
const{name,age,sex}=req.query
console.log('name:',name)
console.log('age:',age)
console.log('sex:',sex)
res.send({
msg:'success',
data:'歡迎:'+name+',年齡:'+age+',性別:'+sex
})})GET請求方式
在postman地址欄中,通過地址欄進行傳參,傳遞三個參數(shù),分別是name,age,sex。輸入/api/gettest2?name=小明&age=23&sex=男,即可使用GET請求并返回結(jié)果,運行結(jié)果如下圖所示。GET請求方式body-parser作為Express中間件,其作用是解析http請求體中的body數(shù)據(jù),將數(shù)據(jù)解析成對象后綁定到req.body中。安裝完body-parser中間件之后,在路由文件中引入并對請求體進行解析。constbodyParser=require('body-parser')body-parser使用bodyParser.json與bodyParser.urlencoded的解析功能,body-parser還提供了raw、urlencoded等解析器。urlencoded解析器的使用方法如下。bodyParser.urlencoded({extended:[option]})POST請求方式urlencoded格式:又叫form格式,或者是x-www-form-urlencoded格式。表單格式是由鍵值對組成。鍵和值之間用=。多個鍵值對之間用&。例如:name=ZhangSan&age=16POST請求方式constexpress=require('express')
//導(dǎo)入express模塊constapp=express()
//創(chuàng)建express的服務(wù)器實例constbodyParser=require('body-parser')app.use(bodyParser.urlencoded({extended:true}))app.post('/post_test',(req,res)=>{
console.log('req.body的內(nèi)容:',req.body)
res.send({
msg:'success',
inifo:req.body
})})POST請求方式app.post('/post_test2',(req,res)=>{
const{news}=req.body
console.log('req.body數(shù)據(jù):',req.body)})下面示例中,從傳入的http請求流中讀取請求的主體,然后解析在該請求主體中找到的JSON。解析后的JSON的結(jié)果屬性被放入對象req.body中,以供后續(xù)請求處理程序使用其中的數(shù)據(jù)。該中間件填充它在解析的JSON中找到的任何屬性。感
謝
觀
看THANK項目九接口的設(shè)計與開發(fā)任務(wù)三小程序訪問數(shù)據(jù)接口MiniProgramAccessDataInterface微信小程序表單數(shù)據(jù)需要跟服務(wù)器進行數(shù)據(jù)交互,可以通過小程序中的網(wǎng)絡(luò)API接口wx.request()來實現(xiàn)。項目九接口的設(shè)計與開發(fā)任務(wù)描述每個微信小程序需要事先設(shè)置通訊域名,小程序只可以跟指定的域名進行網(wǎng)絡(luò)通信。域名只支持https和wss協(xié)議。前后端分離是目前一種非常流行的開發(fā)模式,它使項目的分工更加明確,后端負責(zé)處理、存儲數(shù)據(jù);前端負責(zé)顯示數(shù)據(jù),前端和后端開發(fā)人員通過接口進行數(shù)據(jù)的交換。前后端分離技術(shù)Browser前端Java/Python/GoBrowser
Node
前端
交互后端Java/Python/Go后端
交互演變通過將開發(fā)團隊前后端分離化,讓前后端工程師只需要專注于前端或后端的開發(fā)工作
。為優(yōu)質(zhì)產(chǎn)品打造精益團隊開發(fā)獨立化,開發(fā)能力必然會有所提升,能夠完美應(yīng)對各種復(fù)雜多變的前端需求。應(yīng)對復(fù)雜多變的前端需求前后端分離以后,可以實現(xiàn)前后端代碼的解耦,只要前后端溝通約定好應(yīng)用所需接口以及接口參數(shù),便可以開始并行開發(fā),無需等待對方的開發(fā)工作結(jié)束。提升開發(fā)效率前后端分離后,應(yīng)用的代碼不再是前后端混合,只有在運行期才會有調(diào)用依賴關(guān)系。增強代碼可維護性前后端分離技術(shù)的優(yōu)勢傳統(tǒng)SPA指的是單頁面應(yīng)用,也就是整個網(wǎng)站只有一個頁面,所有功能都通過這一個頁面來呈現(xiàn)。傳統(tǒng)SPA服務(wù)端渲染的方案指的是數(shù)據(jù)綁定,渲染等工作都放在服務(wù)端完成,服務(wù)端向瀏覽器輸出最終的html。服務(wù)端渲染前后端分離架構(gòu)方案前后端分離架構(gòu)方案12優(yōu)點:是開發(fā)簡單,部署簡單。缺點:是首次加載較慢,需要較好的網(wǎng)絡(luò),不友好的SEO,搜索引擎優(yōu)化)。與SPA對比優(yōu)點:更好的SEO,搜索引擎爬蟲抓取工具可以直接查看完全渲染的頁面。更快的內(nèi)容到達時間(time-to-content),特別是對于緩慢的網(wǎng)絡(luò)情況或運行緩慢的設(shè)備。方案對比傳統(tǒng)SPA服務(wù)端渲染前后端分離架構(gòu)方案
wx.request(Objectobject)表示發(fā)起HTTPS網(wǎng)絡(luò)請求,該接口基本語法實例如下所示:wx.request({url:'',//接口地址data:{x:'',y:''},header:{'content-type':'application/json'//默認(rèn)值},success(res){console.log(res.data)}})小程序網(wǎng)絡(luò)請求接口屬性類型必填描述urlstring是開發(fā)者服務(wù)器接口地址。datastring/object/ArrayBuffer否請求的參數(shù)。headerObject否設(shè)置請求的header。content-type默認(rèn)為application/json。methodstring否HTTP請求方法,包括OPTIONS、GET、HEAD、POST、PUT、DEL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能城市建設(shè)項目承包合同4篇
- 2025年度智能水電安裝與維護一體化承包合同范文4篇
- 2024版廣告合同購銷
- 2025年度建筑節(jié)能環(huán)保材料研發(fā)與應(yīng)用合同2篇
- 2025年度企業(yè)內(nèi)部采購人員廉潔自律合作協(xié)議3篇
- 2025年度特種車輛充電樁定制與安裝合同4篇
- 2024鐵路客運服務(wù)合同范本3篇
- 2025年度智慧城市建設(shè)項目承包合同規(guī)范3篇
- 2025年度智能農(nóng)業(yè)化肥代銷合作協(xié)議范本4篇
- 中國藍寶石襯底材料行業(yè)市場調(diào)查研究及發(fā)展戰(zhàn)略規(guī)劃報告
- 2023年上海英語高考卷及答案完整版
- 西北農(nóng)林科技大學(xué)高等數(shù)學(xué)期末考試試卷(含答案)
- 金紅葉紙業(yè)簡介-2 -紙品及產(chǎn)品知識
- 《連鎖經(jīng)營管理》課程教學(xué)大綱
- 《畢淑敏文集》電子書
- 頸椎JOA評分 表格
- 員工崗位能力評價標(biāo)準(zhǔn)
- 定量分析方法-課件
- 朱曦編著設(shè)計形態(tài)知識點
- 110kV變電站工程預(yù)算1
- 某系統(tǒng)安全安全保護設(shè)施設(shè)計實施方案
評論
0/150
提交評論