>  기사  >  PHP 프레임워크  >  강력한 검색 기능을 갖춘 영화 웹사이트 구축: Webman의 영화 애플리케이션 가이드

강력한 검색 기능을 갖춘 영화 웹사이트 구축: Webman의 영화 애플리케이션 가이드

王林
王林원래의
2023-08-12 11:25:521557검색

강력한 검색 기능을 갖춘 영화 웹사이트 구축: Webman의 영화 애플리케이션 가이드

강력한 검색 기능을 갖춘 영화 웹사이트 구축: 웹맨의 영화 애플리케이션 가이드

소개: 인터넷의 대중화와 발전으로 인해 점점 더 많은 사람들이 영화 웹사이트를 사용하여 영화를 탐색하고 선택하는 데 익숙해졌습니다. 이 기사에서는 강력한 검색 기능인 Webman을 사용하여 영화 웹 사이트를 구축하는 방법을 소개하고 코드 예제를 통해 구현 과정을 보여줍니다.

1. 프로젝트 준비

Webman을 구축하려면 먼저 다음 도구와 리소스를 준비해야 합니다.

  1. Node.js: 백엔드 개발을 위한 Chrome V8 엔진 기반 JavaScript 실행 환경입니다.
  2. Express.js: 서버측 애플리케이션을 빠르게 구축하기 위한 빠르고 개방적이며 미니멀한 웹 애플리케이션 프레임워크입니다.
  3. MongoDB: 영화 정보 데이터를 저장하는 데 사용되는 비관계형 데이터베이스입니다.
  4. TMDb API: 영화 정보 및 영화 데이터베이스를 제공하는 API입니다. 이 API를 사용하여 영화 데이터를 가져옵니다.

2 프로젝트 만들기

먼저 컴퓨터에 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;

// 在这里编写代码

3. 영화 데이터 가져오기

다음을 사용합니다. 영화 데이터를 가져오는 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);
    });
  });
});

4. 영화 데이터 저장

다음으로 얻은 영화 데이터를 MongoDB 데이터베이스에 저장해야 합니다. 먼저 MongoDB에 webman이라는 데이터베이스를 만들고 movies라는 컬렉션을 만들어야 합니다. 그런 다음 다음 코드를 사용하여 데이터를 데이터베이스에 저장할 수 있습니다. 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

5. 검색 기능 구현

이제 Webman에 검색 기능을 추가하겠습니다. 다음 코드를 사용하여 간단한 검색 인터페이스를 구현할 수 있습니다.

rrreee

이제 /movies/search?keyword=keyword를 호출하여 검색 기능을 구현할 수 있습니다. 🎜🎜6. Test🎜🎜이제 Webman의 기본 기능이 구현되었습니다. 다음 명령을 사용하여 브라우저에서 http://localhost:3000/movies/search?keyword=wolverine을 방문하여 서버를 시작하고 검색 기능을 테스트할 수 있습니다. 🎜rrreee🎜모든 것이 정상이라면 , 반환된 영화 데이터를 볼 수 있습니다. 🎜🎜결론: 이 글에서는 강력한 검색 기능을 갖춘 영화 웹사이트를 구축하는 방법, 즉 Webman을 소개합니다. Node.js, Express.js 및 MongoDB를 사용하여 영화 데이터의 획득, 저장 및 검색 기능을 성공적으로 구현했습니다. 이 글이 여러분만의 영화 웹사이트를 구축하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 강력한 검색 기능을 갖춘 영화 웹사이트 구축: Webman의 영화 애플리케이션 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.