在nodejs中将JSON对象从Function中取出

时间:2018-03-02 12:17:53

标签: json node.js

我目前正在尝试从函数中获取JSON对象。 我可以访问函数中的所有数据,但我很难将数据输出,所以我实际上可以使用数据。

 var imdb = require('imdb');


imdb('tt4477536', function(err, data) {
  if(err)
    console.log(err.stack);

  if(data)
    console.log(data)
});

这很好用,我得到数据:

{ title: 'Fifty Shades Freed',
  year: '2018',
  contentRating: 'R',
  runtime: '1h 45min',
  description: 'Anastasia and Christian get married, but Jack Hyde 
continues to threaten their relationship.',
  rating: '4.4',
  poster: 'https://images-na.ssl-images-amazon.com/images/M/MV5BODI2ZmM5MzMtOWZiMC00ZGE3LTk3MWEtY2U0ZjE3ZWJlNDEzXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_UX182_CR0,0,182,268_AL_.jpg',
  genre: [ 'Drama', ' Romance', ' Thriller' ],
  director: 'James Foley',
  metascore: '31',
  writer: 'Niall Leonard' }

所以现在我的问题是如何从这个函数中获取数据,所以我实际上可以在代码中的其他地方使用数据?比如我是否需要字符串中的标题?

提前感谢你。

托马斯

1 个答案:

答案 0 :(得分:0)

你可以在它之外声明一个变量:

var imdb = require('imdb');
var imdbData = {};

imdb('tt4477536', function(err, data) {
  if(err)
    console.log(err.stack);

  if(data) {
    imdbData = data;
    console.log(data);
  }
});

但请注意,由于这是一个异步函数,因此在使用tha数据时应该使用回调或Promise是安全的。为了更好的方法:

var imdb = require('imdb');

imdb('tt4477536', function(err, data) {
  if(err)
    console.log(err.stack);

  if(data) {
    doNext(data);
  }
});

function doNext(data) {
    //use the data
}