1. 程式人生 > >koa2利用bodyparser中介軟體處理post請求(五)

koa2利用bodyparser中介軟體處理post請求(五)

上篇的原生寫法不利用開發,我們使用已經有的外掛koa-bodyparser來實現接收並解析post請求

1》安裝中介軟體

使用npm進行安裝,需要注意的是我們這裡要用–save,因為它在生產環境中需要使用。
npm install --save [email protected]

2》引用

const bodyParser = require('koa-bodyparser');

我們需要在程式碼中引入,使用ES6提供的require來進入

3》使用

app.use(bodyParser());

需要注意的是:如果你引入了,但是你沒有使用它,是不會起作用的。

4》我們看下是否安裝成功,開啟package.json檔案,看到下圖所示,說明安裝成功


5》我們以完整的程式碼看

/*引入koa2*/
const Koa  = require('koa');
/*new一個koa的物件*/
const app = new Koa();
/*引入中介軟體koa-bodyparser*/
const bodyParser = require('koa-bodyparser');
/*使用中介軟體koa-bodyparser*/
app.use(bodyParser());
/*中介軟體*/
app.use(async(ctx)=>{
    /*get請求*/
    if(ctx.url==='/' && ctx.method==='GET'){
        //顯示錶單頁面
        let html=`
            <form method="POST" action="/">
                <p>userName</p>
                <input name="userName" /><br/>
                <p>age</p>
                <input name="age" /><br/>
                <p>website</p>
                <input name="webSite" /><br/>
                <button type="submit">submit</button>
            </form>
        `;
        ctx.body=html;
    }else if(ctx.url==='/' && ctx.method==='POST'){
        /*post請求*/
        let postData= ctx.request.body;
        ctx.body=postData;
    }

});

/*監聽埠*/
app.listen(3004,()=>{
    console.log('success at port 3004');
});

6》我們開啟命令列,使用node index.js啟動服務,在命令列中看到‘success at post 3004’,說明我們啟動成功,開啟瀏覽器,我們在瀏覽器中輸入localhost:3004,會看到下圖所示的頁面


7》當我們輸入form表單點選按鈕submit以後,頁面會出現下圖所示的json串


在這裡,我們明顯能看到,跟上一篇最終得到的結果一樣,但程式碼卻比上一篇的程式碼簡單許多,希望對大家有所幫助,謝謝。

相關推薦

koa2利用bodyparser中介軟體處理post請求

上篇的原生寫法不利用開發,我們使用已經有的外掛koa-bodyparser來實現接收並解析post請求1》安裝中介軟體使用npm進行安裝,需要注意的是我們這裡要用–save,因為它在生產環境中需要使用。 npm install --save [email prote

JAVA利用HttpClient進行POST請求HTTPS

目前,要為另一個專案提供介面,介面是用HTTP URL實現的,最初的想法是另一個專案用JQuery post進行請求。 但是,很可能另一個專案是部署在別的機器上,那麼就存在跨域問題,而JQuery的post請求是不允許跨域的。 這時,就只能夠用HttpClient包進行請求

java實現post請求PostMethod

postmethod json項目要求:實現post請求,且請求格式是json格式。maven依賴包<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>ht

Fiddler抓包7-post請求json

enc ams post提交 dna 類型 info 這一 code 菜單 前言上一篇講過get請求的參數都在url裏,post的請求相對於get請求多了個body部分,本篇就詳細講解下body部分參數的幾種形式。 一、body數據類型 常見的post提交數據類型有四種

資料庫路由中介軟體MyCat - 使用篇3上篇

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 全域性序列號 資料切分後,原有的關係資料庫中的主鍵約束在分散式條件下將無法使用,因此需要引入外部機制保證資料唯一性標識,這種保證全域性性的資料唯一標識的機制就是全域性序列號(sequence)。 1. 本地檔案方式 c

資料庫路由中介軟體MyCat - 使用篇3下篇

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 2. 配置conf/server.xml server.xml幾乎儲存了所有mycat需要的系統配置資訊。其在程式碼內直接的對映類為SystemConfig類。 參考完整配置: <?xml versi

資料庫路由中介軟體MyCat - 使用篇6

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 配置MyCat 4. 配置schema.xml schema.xml裡面管理著MyCat的邏輯庫、表,每張表使用的分片規則、分佈在哪個DataNode以及DataSource上。 之前的例子: ```xml<

資料庫路由中介軟體MyCat - 原始碼篇2

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 2. 前端連線建立與認證 Title:MySql連線建立以及認證過程client->MySql:1.TCP連線請求  MySql->client:2.接受TCP連線client->MySq

資料庫路由中介軟體MyCat - 原始碼篇3

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 2. 前端連線建立與認證 Title:MySql連線建立以及認證過程client->MySql:1.TCP連線請求  MySql->client:2.接受TCP連線client->MySql

資料庫路由中介軟體MyCat - 原始碼篇8

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 3. 連線模組 3.5 後端連線 對於後端連線,我們只關心MySQL的。 從後端連線工廠開始MySQLConnectionFactory.java: public MySQLConnection 

資料庫路由中介軟體MyCat - 原始碼篇7

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 3. 連線模組 3.4 FrontendConnection前端連線 構造方法: public FrontendConnection(NetworkChannel channel) th

資料庫路由中介軟體MyCat - 原始碼篇10

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 3. 連線模組 3.5 後端連線 3.5.2 後端連接獲取與維護管理 還是那之前的流程, st=>start: MyCat接受客戶端連線併為之建立唯一繫結的Session e=>end: 

資料庫路由中介軟體MyCat - 原始碼篇11

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 4.配置模組 每個MyCatServer初始化時,會初始化: MyCatServer.java: public static final String NAME =&n

資料庫路由中介軟體MyCat - 原始碼篇14

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 對於表的dataNode對應關係,有個特殊配置即類似dataNode="distributed(dn$1-10)",這個含義是: /**      * d

資料庫路由中介軟體MyCat - 原始碼篇16

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 5. 路由模組 真正取得RouteResultset的步驟:AbstractRouteStrategy的route方法:對應原始碼: public RouteResultset route(Syst

資料庫路由中介軟體MyCat - 原始碼篇17

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 呼叫processInsert(sc,schema,sqlType,origSQL,tableName,primaryKey): public static boolean proce

資料庫路由中介軟體MyCat - 原始碼篇5

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 3. 連線模組 如之前所述,MyCat的連線分為前端和後端,下面是連線基本相關類圖: 3.1 ClosableConnection: public interface Closa

資料庫路由中介軟體MyCat - 原始碼篇6

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 3. 連線模組 3.3 AbstractConnection: 3.3.2 NIOHandler NIOHandler實際上就是對於業務處理方法的封裝,對於不同的連線有不同的處理方法,也就是不同的N

資料庫路由中介軟體MyCat - 原始碼篇12

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 NodeList ruleNodes = e.getElementsByTagName("rule");      &n

資料庫路由中介軟體MyCat - 原始碼篇9

此文已由作者張鎬薪授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 3. 連線模組 3.5 後端連線 3.5.1 後端連接獲取與負載均衡 上一節我們講了後端連線的基本建立和響應處理,那麼這些後端連線是什麼時候建立的呢? 首先,MyCat配置檔案中,DataHost標