Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >proksi nodejs menghantar permintaan

proksi nodejs menghantar permintaan

WBOY
WBOYasal
2023-05-18 10:39:071209semak imbas

Dengan perkembangan pesat Internet, kepentingan aplikasi rangkaian menjadi semakin jelas. Walau bagaimanapun, dalam aplikasi web kami tidak selalu mendapat apa yang kami mahu dan mungkin perlu mendapatkan data daripada tapak web yang tidak menyokong akses langsung. Atau kami ingin mengakses merentas domain, tetapi disebabkan dasar asal yang sama penyemak imbas, kami tidak boleh berkongsi sumber antara nama domain yang berbeza. Semua masalah ini boleh diselesaikan dengan menghantar permintaan melalui proksi.

Nodejs ialah persekitaran berjalan JavaScript dipacu peristiwa yang sangat sesuai untuk permintaan proksi. Dalam artikel ini, kami akan menerangkan cara membuat proksi menggunakan Nodejs supaya kami boleh mengakses tapak web yang tidak menyokong akses langsung atau akses merentas domain.

  1. Memasang kebergantungan

Nodejs menggunakan npm untuk mengurus kebergantungan aplikasi Kita boleh menggunakan arahan berikut untuk memasang kebergantungan yang diperlukan:

npm install express http-proxy-middleware

Di mana: <.>

    express ialah rangka kerja web Nodejs yang popular yang menyediakan penghalaan mudah dan sokongan perisian tengah
  • http-proxy-middleware ialah perisian tengah untuk meminta proksi kepada yang lain pada pelayan.
    Buat Pelayan
Buat pelayan Nodejs supaya kami boleh membuat permintaan proksi. Cipta fail bernama "server.js" dalam folder projek dan masukkan kod berikut:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

app.use('/', createProxyMiddleware({ 
    target: 'https://example.com',
    changeOrigin: true
}));

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

    Perkenalkan modul ekspres dan http-proxy-middleware
  • Buat ekspres Aplikasi
  • menggunakan http-proxy-middleware middleware untuk permintaan proksi, menetapkan sasaran kami kepada tapak web yang ingin kami proksi
  • menggunakan pilihan changeOrigin untuk menukar asal supaya pengepala permintaan HTTP ditetapkan dengan betul
  • Mulakan aplikasi mendengar pada port 3000.
    Mengkonfigurasi Pelayan
Pelayan proksi kami kini sedia, tetapi untuk membolehkan permintaan penghantaran proksi berfungsi dengan betul, kami perlu melakukan beberapa konfigurasi bagi pelayan. Tambahkan kod berikut dalam fail "server.js":

app.use('/', (req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'X-Requested-With');
    res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS');
    next();
});

Tujuan kod ini adalah untuk membenarkan akses merentas domain. Untuk setiap permintaan masuk, kami menetapkan pengepala respons untuk membenarkan semua asal ( * ) mengakses pelayan kami dan menetapkan kaedah permintaan HTTP yang disokong.

    Jalankan pelayan
Sekarang kita telah melengkapkan persediaan dan konfigurasi pelayan proksi, kita boleh memulakan pelayan dengan menjalankan arahan berikut:

node server.js

Kemudian kami Anda boleh mengakses pelayan proksi kami dalam penyemak imbas, seperti http://localhost:3000, untuk mengakses tapak web yang mana proksi diarahkan.

Ringkasan

Menggunakan proksi Nodejs untuk menghantar permintaan ialah kaedah yang agak mudah dan tidak memerlukan banyak kod. Kami hanya perlu memasang kebergantungan yang diperlukan, mencipta pelayan, mengkonfigurasinya, dan kemudian kami boleh membuat permintaan proksi dalam persekitaran setempat kami. Melalui permintaan proksi, kami bukan sahaja boleh mendapatkan data tapak web yang tidak menyokong akses langsung, tetapi juga mengakses sumber merentas domain, serta meningkatkan kecekapan permintaan proksi dengan menambahkan beberapa ciri lain.

Atas ialah kandungan terperinci proksi nodejs menghantar permintaan. 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