簡體   English   中英

節點https無法解析URL

[英]Node https not resolving URL

我有一個小問題,希望您能幫助我。 我們曾經有一個開發人員,他重構了一些代碼,但現在不起作用。

const request = require('request'),
  API_KEY = '',
  https = require('https');

class ImageService {

    getActorImage(name) {
      return new Promise((resolve, reject) => {
        request.get(`https://api.themoviedb.org/3/search/person?api_key=${API_KEY}&language=en-US&query=${name}`, (error, response, body) => {
        if (error) {
          // todo: handle the error
          reject(error);
        }

        // todo: what if there are multiple results?
        var bodyAsObject = JSON.parse(body);
        var actor = bodyAsObject.results[0];

    https.get(`https://image.tmdb.org/t/p/w300_and_h450_bestv2${actor.profile_path}`, function (profileResponse) {
          var image_data = '';
          profileResponse.setEncoding('binary');

          profileResponse.on('data', function (chunk) {
            image_data += chunk
          });

          profileResponse.on('end', function () {
            resolve(image_data)
          });
        });
      });
    });

    }


    getBackdropImage(backdropPath) {
        return new Promise((resolve) => {
          https.get(`https://image.tmdb.org/t/p/original${backdropPath}`, function (backdropResponse) {
        var image_data = '';
        backdropResponse.setEncoding('binary');

        backdropResponse.on('data', function (chunk) {
          image_data += chunk
        });

        backdropResponse.on('end', function () {
          resolve(image_data)
        });
      });
    });
    }

    getPosterImage(posterPath) {
    return new Promise((resolve) => {
      https.get(`https://image.tmdb.org/t/p/original${posterPath}`, function (posterResponse) {
        var image_data = '';
        posterResponse.setEncoding('binary');

        posterResponse.on('data', function (chunk) {
          image_data += chunk
        });

        posterResponse.on('end', function () {
          resolve(image_data);
        });
      });
    });
    }

    getPosterAndBackdropPath(imdbid) {
    return new Promise((resolve) => {
      request.get(`https://api.themoviedb.org/3/find/${imdbid}?api_key=${API_KEY}&language=en-US&external_source=imdb_id`, (error, response, body) => {
        var responseAsObject = JSON.parse(body);
        var movie = responseAsObject.movie_results[0];
        var posterPath = movie.poster_path;
        var backdropPath = movie.backdrop_path;
        resolve({ poster_path: posterPath, backdrop_path: backdropPath });
      });
    });
    }

}

module.exports = new ImageService();

現在我的問題是,即使actor.profile_path中有數據,它也無法將其解析為實際路徑。 對於使用$ {}的所有其他內容也是如此。

如果您能在這里幫助我,將不勝感激

UPDATE

現在已經在Windows,Mac和Ubuntu上進行了測試,僅在Mac上有效

有任何想法嗎?

提前致謝

托馬斯

${}的字符串必須包含在`反引號 )內。

例如:

https://api.themoviedb.org/3/search/person?api_key=${API_KEY}&language=en-US&query=${name}

應該更改為( 注意開始和結束處的反引號 ):

`https://api.themoviedb.org/3/search/person?api_key=${API_KEY}&language=en-US&query=${name}`

另一個例子:

https://image.tmdb.org/t/p/original${posterPath}

應該更改為:

`https://image.tmdb.org/t/p/original${posterPath}`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM