nodejs menerima parameter permintaan pos

WBOY
Lepaskan: 2023-05-25 15:34:38
asal
2833 orang telah melayarinya

Node.js, sebagai persekitaran berjalan JavaScript sebelah pelayan, adalah sangat biasa apabila memproses permintaan HTTP. Antaranya, menerima parameter permintaan jawatan adalah perkara yang sangat asas. Seterusnya, kita akan belajar cara menggunakan Node.js untuk menerima dan menghuraikan parameter permintaan pos.

1. Permintaan HTTP dalam Node.js

Dalam Node.js, kami boleh mencipta pelayan HTTP melalui modul http terbina dalam. Berikut ialah contoh mudah tentang cara membuat pelayan HTTP mudah:

const http = require('http');

const server = http.createServer((req, res) => {
  res.end('Hello World!');
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});
Salin selepas log masuk

Pelayan ini hanya membalas dengan rentetan Hello World!. Kita boleh menggunakan perintah curl untuk menguji:

curl http://localhost:3000/
Salin selepas log masuk

Kita dapat melihat bahawa selepas menjalankan arahan curl, pelayan akan membalas dengan rentetan Hello World!.

2. Hantar permintaan dalam permintaan HTTP

Dalam permintaan HTTP, permintaan GET dan permintaan POST ialah dua kaedah permintaan yang paling biasa dan asas. Untuk permintaan HTTP GET, parameternya akan dihantar dalam URL, manakala permintaan POST akan menghantar data pasangan nilai kunci dalam kandungan permintaan.

Sudah tentu, walaupun permintaan GET juga boleh membawa parameter dalam badan, kaedah ini tidak selamat. Permintaan POST boleh mengelakkan situasi ini.

3. Node.js mengendalikan permintaan POST

Apabila pelayan menerima permintaan POST, kita perlu mendapatkan parameter daripada badan permintaan. Berikut ialah cara paling biasa untuk mengendalikan permintaan POST menggunakan Node.js:

const http = require('http');

const server = http.createServer((req, res) => {
  if(req.method === 'POST') {
    let postData = '';

    req.on('data', chunk => {
      postData += chunk.toString();
    });

    req.on('end', () => {
      console.log('postData:', postData);
      res.end('Hello World!');
    })
  } else {
    res.end('Hello World!');
  }
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});
Salin selepas log masuk

Idea utama di sini ialah apabila pelanggan menghantar permintaan POST, kami mendengar acara req pada data dan endAcara, dalam acara data, kami terus membaca kandungan permintaan dan menyimpan data dalam pembolehubah dalam bentuk rentetan. Selepas peristiwa end dicetuskan, kami boleh memproses parameter yang diterima.

4. Menghuraikan parameter permintaan

Selepas mendapatkan parameter dalam permintaan POST, kita perlu menghuraikan parameter. Secara umumnya, parameter dalam permintaan POST dihantar dalam bentuk nilai kunci, iaitu gaya yang digunakan oleh data borang biasa kami.

Dalam Node.js, kita boleh menghuraikan parameter ini dengan menggunakan modul querystring. Berikut ialah contoh:

const http = require('http');
const querystring = require('querystring');

const server = http.createServer((req, res) => {
  if(req.method === 'POST') {
    let postData = '';

    req.on('data', chunk => {
      postData += chunk.toString();
    });

    req.on('end', () => {
      console.log('postData:', postData);
      const body = querystring.parse(postData);
      console.log('body:', body);
      res.end('Hello World!');
    })
  } else {
    res.end('Hello World!');
  }
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});
Salin selepas log masuk

Dalam contoh di atas, kami mula-mula menggunakan modul querystring terbina dalam Node.js. Dalam acara end, kami menghuraikan parameter POST yang diterima menggunakan kaedah querystring.parse(), dan kemudian mengeluarkannya ke konsol untuk dilihat.

5 Gunakan Express untuk mengendalikan permintaan POST

Selain menggunakan modul http terbina dalam Node.js untuk mengendalikan permintaan POST, kami juga boleh menggunakan rangka kerja sebelah pelayan yang popular Express. . Dalam Express, kita boleh menggunakan body-parser middleware untuk mengendalikan parameter dalam permintaan POST. Berikut ialah contoh menggunakan Express dan body-parser:

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

// 将JSON请求体解析中间件,放在路由之前
app.use(bodyParser.json());

// 处理URL编码请求体的中间件
app.use(bodyParser.urlencoded({extended: false}));

app.post('/', (req, res) => {
  console.log('body:', req.body);
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});
Salin selepas log masuk

Dalam contoh ini, kami mula-mula menggunakan rangka kerja Express dan mengendalikan parameter dalam permintaan POST dengan menggunakan perisian tengah body-parser. Dalam laluan post, kita boleh mendapatkan terus parameter dalam permintaan POST melalui req.body dan mengeluarkannya ke konsol dan respons.

Ringkasan

Untuk memproses permintaan POST dalam Node.js, kita perlu menggunakan modul http terbina dalam Node.js atau rangka kerja Express yang popular, dan kemudian melaksanakan penghuraian dan pemprosesan parameter. Untuk pemula, sebaiknya fahami dahulu cara menggunakan modul http dalam Node.js sebelum mempertimbangkan untuk menggunakan rangka kerja yang popular. Pada masa yang sama, apabila memproses permintaan POST, kami juga perlu mempertimbangkan isu keselamatan untuk memastikan bahawa parameter yang dihantar tidak akan diperoleh oleh pihak ketiga.

Atas ialah kandungan terperinci nodejs menerima parameter permintaan pos. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan