首頁  >  文章  >  php框架  >  建立具有強大搜尋功能的電影網站:Webman的電影應用指南

建立具有強大搜尋功能的電影網站:Webman的電影應用指南

王林
王林原創
2023-08-12 11:25:521475瀏覽

建立具有強大搜尋功能的電影網站:Webman的電影應用指南

建立具有強大搜尋功能的電影網站:Webman的電影應用程式指南

導語:隨著網路的普及和發展,越來越多的人習慣使用電影網站來瀏覽和選擇電影。本文將介紹如何建立一個具有強大搜尋功能的電影網站——Webman,透過程式碼範例展示其實現過程。

一、專案準備

為了建構Webman,我們首先需要準備以下工具與資源:

  1. Node.js:一個基於Chrome V8引擎的JavaScript運行環境,用於後端開發。
  2. Express.js:一個快速、開放、極簡的web應用框架,用於快速建立伺服器端應用程式。
  3. MongoDB:一種非關聯式的資料庫,用於儲存電影資訊資料。
  4. TMDb API:一個提供電影資訊和電影資料庫的API。我們將使用該API來取得電影資料。

二、建立專案

首先,我們在電腦上建立一個名為Webman的資料夾,然後開啟命令列工具,進入該資料夾,並執行以下命令來初始化一個新的Node.js專案:

npm init -y

然後,我們安裝Express.js和MongoDB的Node.js驅動程式:

npm install express mongodb

接下來,我們建立一個名為index.js的文件,並在其中導入所需的模組:

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

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

// 在这里编写代码

三、獲取電影資料

#我們將使用TMDb API來獲取電影資料。首先,我們需要在TMDb官網上申請一個API金鑰。取得到API金鑰後,我們可以使用以下程式碼來向TMDb發送請求並取得電影資料:

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);
    });
  });
});

四、儲存電影資料

接下來,我們需要將取得到的電影資料儲存到MongoDB資料庫。首先,我們需要在MongoDB中建立一個名為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');
            }
          });
        });
      });
    });
  }
});

五、實作搜尋功能

現在,我們將為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);
    }
  });
});

現在,我們可以透過呼叫/movies/search?keyword=關鍵字來實作搜尋功能了。

六、測試

至此,Webman的基本功能已經實現。我們可以使用以下命令來啟動伺服器,並在瀏覽器中訪問http://localhost:3000/movies/search?keyword=金剛狼來測試搜尋功能:

node index.js

如果一切正常,你將看到返回的電影數據。

結語:本文介紹如何建立一個具有強大搜尋功能的電影網站-Webman。透過使用Node.js、Express.js和MongoDB,我們成功實現了電影資料的取得、儲存和搜尋功能。希望這篇文章對你建立自己的電影網站有所幫助。

以上是建立具有強大搜尋功能的電影網站:Webman的電影應用指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn