如何在node.js中實(shí)現(xiàn)express框架?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
成都創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)全網(wǎng)整合營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、紅山網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為紅山等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
一、express框架初步介紹
關(guān)于express框架的介紹,這里我引用菜鳥(niǎo)教程的簡(jiǎn)介:
Express是一個(gè)簡(jiǎn)潔而靈活的node.js web框架,提供了一系列強(qiáng)大特性幫助你創(chuàng)建各種web應(yīng)用,和豐富的HTTP工具。使用Express可以快速地搭建一個(gè)完整功能的網(wǎng)站。
1.express框架的特性
(1)可以設(shè)置中間件來(lái)響應(yīng)HTTP請(qǐng)求;
(2)定義了路由表用于執(zhí)行不同大的HTTP請(qǐng)求動(dòng)作;
(3)可以通過(guò)向模板傳遞參數(shù)來(lái)動(dòng)態(tài)渲染HTML頁(yè)面;
2.安裝express
npm install express --save或cnpm install express --save
以下幾個(gè)重要需要與express框架一起安裝:
body-parser -node.js中間件,用于處理JSON,Raw,Text和URL編碼的數(shù)據(jù);
cookie-parser -這就是一個(gè)解析Cookie的工具。通過(guò)req.cookies可以取到傳過(guò)來(lái)的cookie,并將它們轉(zhuǎn)為對(duì)象;
multer - node.js中間件,用于處理enctype=“multipart/form-data”(設(shè)置表單mime編碼)的表單數(shù)據(jù);
安裝命令如下所示:
npm install body-parser --save npm install cookie-parser --save npm install multer --save
3.express的入門(mén)程序
node_learning.js代碼如下:
var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello World'); }) var server = app.listen(2019, function () { var host = server.address().address var port = server.address().port console.log("應(yīng)用實(shí)例,訪(fǎng)問(wèn)地址為 http://127.0.0.1:2019", host, port) })
二、express框架中的app.use和app.get/app.post
app.use和app.get/app.post其實(shí)區(qū)別如(引用一位朋友說(shuō)的):
感興趣的可以參考這個(gè)鏈接:作者做了試驗(yàn)測(cè)試過(guò)的
(1)app.use(path,callback)中的callback既可以是router對(duì)象又可以是函數(shù)
(2)app.get(path,callback)中的callback只能是函數(shù)
app.use和app.get/app.post實(shí)現(xiàn)幾乎大同小異,代碼示例如下:
var express = require('express'); var app = express(); function testUser(req, res, next){ // req 參數(shù)可以接受一些請(qǐng)求的參數(shù)(req.query/req.body) 和 請(qǐng)求頭信息 // res 用于響應(yīng)信息 // 調(diào)用next()方法則進(jìn)入下一個(gè)中間件 res.send("測(cè)試用戶(hù)"); } function testLogin(req,res,next){ res.send("測(cè)試登錄"); } var server = app.listen(2019, function () { var host = server.address().address var port = server.address().port console.log("應(yīng)用實(shí)例,訪(fǎng)問(wèn)地址為 http://127.0.0.1:2019") }) //路徑匹配 app.use('/user',testUser); app.get('/login',testLogin);
關(guān)于node.js的express框架就介紹這么多,最近本人因?qū)崿F(xiàn)某個(gè)插件的功能而需要用到的,這與下面說(shuō)的mock server有比較大的關(guān)系。
三、mock server 介紹
mock server 翻譯過(guò)來(lái)的意思是模擬服務(wù)。
說(shuō)到這我相信大家就很容易理解了。至于為什么要模擬服務(wù)?
比方說(shuō)現(xiàn)今的業(yè)務(wù)系統(tǒng)很少有孤立存在的,它們或多或少使用其他公司提供的服務(wù),這給我們聯(lián)調(diào)和測(cè)試造成了比較大的麻煩,對(duì)于這種情況,常見(jiàn)的解決方案就是搭建一個(gè)mock server,模擬那些服務(wù)器,提供數(shù)據(jù)進(jìn)行聯(lián)調(diào)和測(cè)試
四、mock server的實(shí)現(xiàn)思路
現(xiàn)在google或者being搜索mock server 實(shí)現(xiàn)思路肯定有很多,這里我就不再贅述。
這里我以我自己最近的vscode插件開(kāi)發(fā)來(lái)說(shuō)。
我最近的工作是針對(duì)Settings-Sync作二次開(kāi)發(fā)
關(guān)于settings-sync插件,感興趣的可以參考我的博客園Settings-Sync源碼閱讀
如何實(shí)現(xiàn)一個(gè)mock server 替換github api地址并確保效果一致?
針對(duì)目前這個(gè)需求,我的實(shí)現(xiàn)思路如下:
第一,針對(duì)如何實(shí)現(xiàn)一個(gè)mock server ,可以復(fù)用已有,如mock-github-api(其本身是使用node.js的express框架);
第二,如何編寫(xiě),可以按照express框架編寫(xiě)網(wǎng)絡(luò)請(qǐng)求的方法,如app.get或app.use等;
第三,為了保持與githu api一致,我需要引入github rest api,如@octokit/rest;
參考api地址
示例一: octokit.repos.listForOrg({ org: 'octokit', type: 'public' }).then(({ data, status, headers }) => { // handle data //console.log("status:"+JSON.stringify(headers)); //console.log(status); console.log(data); }) 返回的octokit相關(guān)的api信息(信息太多了,就先簡(jiǎn)略)
示例二: const clientWithAuth = new Octokit({ auth: 'token secret123' }) console.log(clientWithAuth)//查看詳細(xì)信息 console.log(JSON.stringify(clientWithAuth))//輸出簡(jiǎn)要信息如下 所示: 返回的信息: {"log":{},"activity":{},"apps":{},"checks":{},"codesOfConduct":{},"emojis":{}, "gists":{},"git":{},"gitignore":{},"interactions":{},"issues":{},"licenses":{}, "markdown":{},"meta":{},"migrations":{},"oauthAuthorizations":{},"orgs":{}, "projects":{},"pulls":{},"rateLimit":{},"reactions":{},"repos":{},"search":{}, "teams":{},"users":{},"gitdata":{},"authorization":{},"pullRequests":{} }
看完上述內(nèi)容,你們掌握如何在node.js中實(shí)現(xiàn)express框架的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)頁(yè)名稱(chēng):如何在node.js中實(shí)現(xiàn)express框架
網(wǎng)頁(yè)網(wǎng)址:http://jinyejixie.com/article4/gpedoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、微信小程序、網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容