Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk melakukan pemajuan lapisan tengah dalam nodejs

Bagaimana untuk melakukan pemajuan lapisan tengah dalam nodejs

PHPz
PHPzasal
2023-04-26 09:11:17759semak imbas

Node.js ialah persekitaran masa jalan JavaScript yang membenarkan pembangun menulis kod sisi pelayan menggunakan bahasa JavaScript. Semasa proses pembangunan, Node.js sering digunakan sebagai lapisan tengah untuk merealisasikan penghantaran data atau permintaan ke hadapan antara hujung hadapan dan hujung belakang. Dalam artikel ini, saya akan memperkenalkan secara terperinci cara menggunakan Node.js untuk pemajuan peringkat pertengahan.

1. Kelebihan Node.js

Sebagai persekitaran berjalan JavaScript berdasarkan I/O dipacu peristiwa dan tak segerak, Node.js mempunyai kelebihan berikut dalam pembangunan aplikasi rangkaian:

  1. Model I/O tak segerak: Node.js mengguna pakai model dipacu peristiwa untuk tidak segerak operasi I/O tanpa menyekat pelaksanaan kod berikutnya, meningkatkan prestasi sistem dan prestasi serentak.
  2. Model benang tunggal: Node.js menggunakan model benang tunggal, yang mengelakkan overhed penukaran antara berbilang urutan dan mengurangkan kerumitan pembangun menulis kod serentak.
  3. Ringan: Kod teras Node.js hanya mempunyai beberapa ratus fail dan sangat sedikit fail pustaka, jadi ia bermula dan berjalan dengan cepat.
  4. Sesuai untuk memproses sejumlah besar permintaan data kecil: Node.js sesuai untuk memproses sejumlah besar permintaan data kecil, seperti WebSockets, sambungan panjang, tinjauan HTTP, dsb.

2. Pemajuan lapisan tengah Node.js

  1. Transmisi permintaan pelanggan

Antara hujung hadapan dan hujung belakang, permintaan pelanggan perlu dimajukan melalui lapisan perantara. Pengguna mengakses halaman hadapan dengan menggunakan penyemak imbas, halaman hujung hadapan menghantar permintaan ke peringkat tengah, dan peringkat tengah memajukan permintaan ke bahagian belakang.

  1. Pelaksanaan kod lapisan tengah

Lapisan tengah boleh ditulis menggunakan Node.js Berikut ialah langkah pelaksanaan kod:

(1) Buat pelayan HTTP Nod untuk .js.

const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  // 处理请求
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

(2) Tetapkan port terbuka pelayan dan dengar permintaan HTTP pada port yang ditentukan pada mesin tempatan.

(3) Lapisan tengah menerima permintaan bahagian hadapan dan memajukan maklumat permintaan ke pelayan bahagian belakang.

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  const options = {
    hostname: 'www.example.com',
    port: 80,
    path: req.url,
    method: req.method,
    headers: req.headers
  };

  const proxyReq = http.request(options, (proxyRes) => {
    proxyRes.on('data', (chunk) => {
      res.write(chunk);
    });

    proxyRes.on('end', () => {
      res.end();
    });

    res.writeHead(proxyRes.statusCode, proxyRes.headers);
  });

  req.on('data', (chunk) => {
    proxyReq.write(chunk);
  });

  req.on('end', () => {
    proxyReq.end();
  });
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

(4) Dalam proses memproses permintaan oleh lapisan tengah, salin maklumat permintaan ke objek permintaan proksi, dan tambah alamat, port, kaedah permintaan dan permintaan bahagian belakang pelayan ke objek permintaan proksi maklumat pengepala, dan kemudian gunakan fungsi http.request() untuk meminta pelayan bahagian belakang.

(5) Dalam objek permintaan proksi, tambahkan fungsi mendengar untuk memproses data dan acara tamat yang dijawab oleh pelayan hujung belakang, dan keluarkan data respons ke bahagian hadapan.

(6) Tetapkan pemantauan acara di lapisan tengah pada masa yang sama Apabila penghantaran data permintaan bahagian hadapan selesai, data permintaan ditulis ke objek permintaan proksi Selepas penulisan data selesai. fungsi akhir digunakan.

(7) Selepas pemprosesan selesai, lepaskan objek permintaan proksi.

3. Ringkasan

Dalam artikel ini, kami memperkenalkan kaedah Node.js sebagai lapisan tengah untuk melaksanakan pemajuan permintaan Melalui model I/O tak segerak dan model utas tunggal, Node.js.js menjadi alat yang baik untuk mengendalikan sejumlah besar permintaan data kecil. Dalam amalan, pelaksanaan pemajuan lapisan tengah Node.js digunakan secara meluas dalam bidang aplikasi Contohnya, dalam seni bina perkhidmatan mikro, Node.js digunakan untuk merealisasikan komunikasi antara perkhidmatan, yang meningkatkan kebolehpercayaan dan skalabiliti sistem.

Atas ialah kandungan terperinci Bagaimana untuk melakukan pemajuan lapisan tengah dalam nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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