无法从 API 调用中检索对象数组

时间:2021-01-13 17:43:10

标签: javascript node.js arrays reactjs api

我正在开发一个 React 应用程序项目,我们正在创建自己的“电影数据库”API,将一些数据植入其中,然后实现 TMDB API 以通过 ID 检索每部电影的相关数据,React 应用程序使用访问 API 的代理。我正在尝试使用调用 '/api/user/{userName}/favourites' 为特定用户帐户返回一组“电影”对象。但是,如果我在 console.log 中尝试返回数组,而不是返回电影对象数组,则会将 'Promise {}' 返回到控制台并且该数组包含在承诺结果中,我我不确定如何访问它,因为在 React 应用程序的其他方面,我的 API 返回了一系列电影,它们在控制台中作为数组返回。

如果我在 Postman '/api/movies' 和 '/api/users/{userName}/favourites' 中测试我的 API 路由都返回我想要的电影对象数组,但是出于某种原因,当我调用我的 fetch 方法将收藏夹作为 Promise 返回。

API 用户 index.js 中检索用户收藏夹的方法

router.get('/:userName/favourites', (req, res, next) => {
  const userName = req.params.userName;
  User.findByUserName(userName).populate('favourites').then(
    user => res.status(201).json(user.favourites)
  ).catch(next);
});

react App 中的代码通过代理调用上述方法

//get favourites for a user
export const getFavourites = (username) => {
    return fetch(`/api/users/${username}/favourites`, {
        'Authorization': window.localStorage.getItem('token')
    }
    )
    .then(res => res.json());
};

这是我第一次在这里发帖寻求帮助,所以如果我没有提供足够的上下文或者需要更多信息来真正理解问题所在,请原谅我。

感谢任何帮助,谢谢。

0 个答案:

没有答案