Rumah > rangka kerja php > Workerman > teks badan

Membina Laman Web Filem dengan Carian Berkuasa: Panduan Webman untuk Aplikasi Filem

王林
Lepaskan: 2023-08-12 11:25:52
asal
1536 orang telah melayarinya

Membina Laman Web Filem dengan Carian Berkuasa: Panduan Webman untuk Aplikasi Filem

Bina laman web filem dengan fungsi carian yang berkuasa: Panduan Aplikasi Filem Webman

Pengenalan: Dengan populariti dan perkembangan Internet, semakin ramai orang terbiasa menggunakan tapak web filem untuk menyemak imbas dan memilih filem. Artikel ini akan memperkenalkan cara membina tapak web filem dengan fungsi carian yang berkuasa - Webman, dan menunjukkan proses pelaksanaannya melalui contoh kod.

1. Penyediaan projek

Untuk membina Webman, kami perlu menyediakan alatan dan sumber berikut terlebih dahulu:

  1. Node.js: persekitaran berjalan JavaScript berdasarkan enjin Chrome V8 untuk pembangunan bahagian belakang.
  2. Express.js: Rangka kerja aplikasi web yang pantas, terbuka dan minimalis untuk membina aplikasi sebelah pelayan dengan cepat.
  3. MongoDB: Pangkalan data bukan perhubungan yang digunakan untuk menyimpan data maklumat filem.
  4. TMDb API: API yang menyediakan maklumat filem dan pangkalan data filem. Kami akan menggunakan API ini untuk mendapatkan data filem.

2 Cipta projek

Mula-mula, kami mencipta folder bernama Webman pada komputer, kemudian buka alat baris arahan, masukkan folder dan laksanakan arahan berikut untuk memulakan projek Node.js baharu:

npm init -y
Salin selepas log masuk

Kemudian, kami memasang Express.js dan pemacu Node.js untuk MongoDB:

npm install express mongodb
Salin selepas log masuk

Seterusnya, kami mencipta fail bernama index.js dan mengimport modul yang diperlukan di dalamnya:

const express = require('express');
const MongoClient = require('mongodb').MongoClient;

const app = express();
const port = 3000;

// 在这里编写代码
Salin selepas log masuk

3. Dapatkan Data Filem

Kami akan menggunakan API TMDb untuk mendapatkan data filem. Pertama, kita perlu memohon kunci API di tapak web rasmi TMDb. Selepas mendapatkan kunci API, kita boleh menggunakan kod berikut untuk menghantar permintaan kepada TMDb dan mendapatkan data filem:

const apiKey = 'YOUR_API_KEY';

app.get('/movies', (req, res) => {
  const url = `https://api.themoviedb.org/3/discover/movie?api_key=${apiKey}`;

  // 使用Node.js的内置http模块来发送请求
  http.get(url, (response) => {
    let data = '';

    response.on('data', (chunk) => {
      data += chunk;
    });

    response.on('end', () => {
      const movies = JSON.parse(data).results;
      res.send(movies);
    });
  });
});
Salin selepas log masuk

4. Simpan data filem

Seterusnya, kita perlu menyimpan data filem yang diperoleh ke dalam pangkalan data MongoDB. Mula-mula, kita perlu mencipta pangkalan data bernama webman dalam MongoDB dan mencipta koleksi bernama movies. Kami kemudiannya boleh menyimpan data ke dalam pangkalan data menggunakan kod berikut: webman的数据库,并创建一个名为movies的集合。然后,我们可以使用以下代码将数据存储到数据库中:

const url = 'mongodb://localhost:27017';
const dbName = 'webman';

MongoClient.connect(url, (err, client) => {
  if (err) {
    console.log(err);
  } else {
    console.log('Connected to MongoDB');

    const db = client.db(dbName);
    const collection = db.collection('movies');
    
    app.get('/movies/save', (req, res) => {
      const url = `https://api.themoviedb.org/3/discover/movie?api_key=${apiKey}`;

      http.get(url, (response) => {
        let data = '';

        response.on('data', (chunk) => {
          data += chunk;
        });

        response.on('end', () => {
          const movies = JSON.parse(data).results;
          
          collection.insertMany(movies, (err, result) => {
            if (err) {
              console.log(err);
              res.send(err);
            } else {
              console.log('Movies saved to database');
              res.send('Movies saved to database');
            }
          });
        });
      });
    });
  }
});
Salin selepas log masuk

五、实现搜索功能

现在,我们将为Webman添加搜索功能。我们可以使用以下代码来实现一个简单的搜索接口:

app.get('/movies/search', (req, res) => {
  const keyword = req.query.keyword;

  const query = {
    $or: [
      { title: { $regex: keyword, $options: 'i' } },
      { overview: { $regex: keyword, $options: 'i' } }
    ]
  };

  collection.find(query).toArray((err, result) => {
    if (err) {
      console.log(err);
      res.send(err);
    } else {
      res.send(result);
    }
  });
});
Salin selepas log masuk

现在,我们可以通过调用/movies/search?keyword=关键词来实现搜索功能了。

六、测试

至此,Webman的基本功能已经实现。我们可以使用以下命令来启动服务器,并在浏览器中访问http://localhost:3000/movies/search?keyword=金刚狼

node index.js
Salin selepas log masuk
5. Laksanakan fungsi carian

Sekarang, kami akan menambah fungsi carian ke Webman. Kita boleh menggunakan kod berikut untuk melaksanakan antara muka carian mudah:

rrreee

Kini, kita boleh melaksanakan fungsi carian dengan memanggil /movies/search?keyword=keyword. 🎜🎜6. Ujian🎜🎜Pada ketika ini, fungsi asas Webman telah dilaksanakan. Kita boleh menggunakan arahan berikut untuk memulakan pelayan dan menguji fungsi carian dengan melawati http://localhost:3000/movies/search?keyword=wolverine dalam penyemak imbas: 🎜rrreee🎜Jika semuanya baik-baik saja , Anda akan melihat data filem dikembalikan. 🎜🎜Kesimpulan: Artikel ini memperkenalkan cara membina tapak web filem dengan fungsi carian yang berkuasa - Webman. Dengan menggunakan Node.js, Express.js dan MongoDB, kami berjaya melaksanakan fungsi pemerolehan, penyimpanan dan carian data filem. Saya harap artikel ini membantu anda membina laman web filem anda sendiri. 🎜

Atas ialah kandungan terperinci Membina Laman Web Filem dengan Carian Berkuasa: Panduan Webman untuk Aplikasi Filem. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!