日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

HTTP請(qǐng)求處理程序(HTTP Handler)

更新時(shí)間:

您可以使用HTTP請(qǐng)求處理程序更方便地處理HTTP請(qǐng)求。當(dāng)調(diào)用函數(shù)時(shí),函數(shù)計(jì)算使用您提供的執(zhí)行方法來處理HTTP請(qǐng)求。本文介紹Node.js HTTP請(qǐng)求處理程序的結(jié)構(gòu)特點(diǎn)和使用示例等。

HTTP Handler簽名

Node.js的HTTP Handler的簽名如下。您只需實(shí)現(xiàn)一個(gè)函數(shù),就能響應(yīng)HTTP請(qǐng)求。

exports.handler = (req, resp, context) => {
    console.log("receive body: ", req.body.toString());
    resp.setHeader("Content-Type", "text/plain");
    resp.send('<h1>Hello, world!</h1>');
}     

示例解析如下:

  • handler:HTTP Handler名稱。

  • req:HTTP請(qǐng)求結(jié)構(gòu)體。

  • resp:HTTP返回結(jié)構(gòu)體。

  • context:上下文信息。具體信息,請(qǐng)參見上下文

HTTP請(qǐng)求結(jié)構(gòu)體

字段

類型

描述

headers

Object

存放來自HTTP客戶端的鍵值對(duì)。

path

String

表示HTTP路徑。

queries

Object

存放來自HTTP路徑中的查詢部分的鍵值對(duì),值的類型可以為字符串或數(shù)組。

method

String

表示HTTP方法。

clientIP

String

客戶端的IP地址。

url

String

請(qǐng)求的地址。

說明

Headers鍵值對(duì)中的key中包含以下字段或以x-fc-開頭的key均會(huì)被忽略,因此,不支持自定義。

  • connection

  • keep-alive

HTTP響應(yīng)結(jié)構(gòu)體

方法

類型

描述

response.setStatusCode(statusCode)

interger

設(shè)置狀態(tài)碼。

response.setHeader(headerKey, headerValue)

String,String

設(shè)置響應(yīng)頭。

response.deleteHeader(headerKey)

String

刪除響應(yīng)頭。

response.send(body)

Buffer,String,Stream.Readable

發(fā)送響應(yīng)體。

重要

headerKey中包含以下字段或以x-fc-開頭的headerKey均會(huì)被忽略,因此,不支持自定義。

  • connection

  • content-length

  • date

  • keep-alive

  • server

  • upgrade

限制說明

  • 請(qǐng)求限制

    如果超過以下限制,會(huì)返回400狀態(tài)碼和InvalidArgument錯(cuò)誤碼。

    字段

    限制說明

    HTTP狀態(tài)碼

    錯(cuò)誤碼

    headers

    請(qǐng)求頭中的所有鍵和值的總大小不能超過8 KB。

    400

    InvalidArgument

    path

    請(qǐng)求路徑以及所有查詢參數(shù)的總大小不能超過4 KB。

    body

    同步調(diào)用請(qǐng)求的Body的總大小不能超過32 MB,異步調(diào)用請(qǐng)求的Body的總大小不能超過128 KB。

  • 響應(yīng)限制

    如果超過以下限制,會(huì)返回502狀態(tài)碼和BadResponse錯(cuò)誤碼。

    字段

    限制說明

    HTTP狀態(tài)碼

    錯(cuò)誤碼

    headers

    響應(yīng)頭中的所有鍵和值對(duì)的大小不能超過8 KB。

    502

    BadResponse

示例:獲取HTTP請(qǐng)求詳細(xì)信息并返回Body

示例代碼

module.exports.handler = function (request, response, context) {
    // get request header
    var reqHeader = request.headers
    var headerStr = ' '
    for (var key in reqHeader) {
        headerStr += key + ':' + reqHeader[key] + '  '
    };

    // get request info
    var url = request.url
    var path = request.path
    var queries = request.queries
    var queryStr = ''
    for (var param in queries) {
        queryStr += param + "=" + queries[param] + '  '
    };
    var method = request.method
    var clientIP = request.clientIP
    var body = request.body
    var respBody = new Buffer('requestHeader:' + headerStr + '\n' + 'url: ' + url + '\n' + 'path: ' + path + '\n' + 'queries: ' + queryStr + '\n' + 'method: ' + method + '\n' + 'clientIP: ' + clientIP + '\n' + 'body: ' + body + '\n')
    response.setStatusCode(200)
    response.setHeader('content-type', 'application/json')
    response.send(respBody)
};

前提條件

創(chuàng)建服務(wù)

操作步驟

  1. 登錄函數(shù)計(jì)算控制臺(tái),在左側(cè)導(dǎo)航欄,單擊服務(wù)及函數(shù)
  2. 在頂部菜單欄,選擇地域,然后在服務(wù)列表頁面,單擊目標(biāo)服務(wù)。
  3. 函數(shù)管理頁面,單擊創(chuàng)建函數(shù)

    創(chuàng)建運(yùn)行環(huán)境為Node.js 14.x的HTTP函數(shù)。具體操作步驟,請(qǐng)參見創(chuàng)建函數(shù)

  4. 函數(shù)詳情頁面,單擊函數(shù)代碼頁簽,在代碼編輯器中輸入上述示例代碼,然后單擊部署代碼

    說明

    上述示例代碼中函數(shù)的請(qǐng)求處理程序是index.js中的handler方法。如果您的函數(shù)配置的請(qǐng)求處理程序不同,請(qǐng)獲取對(duì)應(yīng)的文件和方法進(jìn)行更新。具體信息,請(qǐng)參見函數(shù)實(shí)例生命周期回調(diào)方法

  5. 函數(shù)代碼頁簽,單擊測(cè)試函數(shù)右側(cè)的down圖標(biāo),從下拉列表中選擇配置測(cè)試參數(shù)

  6. 配置測(cè)試參數(shù)面板,選擇創(chuàng)建新測(cè)試請(qǐng)求編輯已有測(cè)試請(qǐng)求,配置以下參數(shù),然后單擊確定

    • 請(qǐng)求名稱:輸入自定義請(qǐng)求名稱。

    • 請(qǐng)求方式:選擇POST

    • 請(qǐng)求路徑:輸入?foo=bar

    • 請(qǐng)求 Body:在代碼框中輸入hello,fc

  7. 單擊測(cè)試函數(shù)

    函數(shù)執(zhí)行成功后,您可以看到返回結(jié)果中包含的客戶端IP地址等信息。