Bagaimana cara mengurai parameter tubuh di AWS lambda?

Pada fungsi AWS lambda saya, saya memiliki akses ke acara json yang menyimpan parameter yang disebut: body. masalahnya adalah ini adalah string isi mentah (tidak diuraikan menjadi parameter individual).

{
  input: {
    body: "------WebKitFormBoundarys3wLu6HlaCBrIExe\r\nContent-Disposition: form-data; name=\"foo\"\r\n\r\nbar\r\n------WebKitFormBoundarys3wLu6HlaCBrIExe\r\nContent-Disposition: form-data; name=\"media[]\"\r\n\r\nhthtth\r\n------WebKitFormBoundarys3wLu6HlaCBrIExe\r\nContent-Disposition: form-data; name=\"media[]\"\r\n\r\nlololol\r\n------WebKitFormBoundarys3wLu6HlaCBrIExe--\r\n"
  }
}

Saya ingin mengambilnya dan mengubahnya menjadi:

{
  foo: 'bar',
  media: [
    "grgkoerpkge",
    "twepgbopcib"
  ]
}

Saya lebih suka untuk tidak menggunakan server ekspres yang membengkak hanya untuk mengurai string isi.

PS. Saya sudah mencoba menggunakan body-parser tetapi sepertinya hanya berfungsi dengan express sebagai perantara


person CodeOverload    schedule 06.08.2017    source sumber
comment
Anda dapat menemukan solusinya di sini   -  person sayan saha    schedule 01.11.2020


Jawaban (3)


Kirimkan ke lambda Anda sebagai JSON.

Kemudian, di lambda Anda (jika Anda menggunakan integrasi lambda-proxy), parsing dengan menggunakan JSON.parse(event.body).

person Noel Llevares    schedule 07.08.2017
comment
Saya tidak dapat mengontrol apa yang dikirimkan kepada saya - ini adalah webhook dari suatu layanan - person CodeOverload; 07.08.2017

Anda meneruskan parameter berdasarkan formulir atau dengan "Jenis Konten" di header "application/x-www-form-urlencoded".

Anda harus meneruskannya dengan "application/json"

person Guerra    schedule 13.08.2017

Mengalami masalah serupa baru-baru ini, karena tipe konten dalam permintaan adalah format teks biasa, saya menggunakan querystring, modul bawaan di node js untuk mengurai string isi, lebih lanjut tentang string kueri

const querystring = require('querystring');

& di penangan lambda,

var jsonData = querystring.parse(event.body);
person dc7    schedule 11.06.2020
comment
Ini hanya berfungsi jika isi Content-Type adalah application/x-www-form-urlencoded, tidak berfungsi untuk multipart/form-data. - person sayan saha; 01.11.2020