当前位置: 首页 > 知识库问答 >
问题:

从服务器获取数据时,挂载钩子(Promise/async)出错

养研
2023-03-14

我是Vue新手,我有一个网页组件(电影歌曲列表),它从页面路由参数(通过此.$store.state.route.params.movieId)接收电影id,然后使用以下命令从服务器上的数据库获取实际用户歌曲数据:this。movie=(等待MoviesService.show(movieId))。数据,show函数是通过id查找db中的参数,并将内容发送回前端。

我的问题是,每当我点击查看按钮时,网站都会链接到带有基本框架的某个id页面,但它无法获取电影歌单网页中的内容。错误演示邮递员中的快照

控制台中显示的错误为:

[Vue warn]:挂载挂钩(promise/异步)中出错:在中找到“错误:请求失败,状态代码为500”---

看电影。vue:

<template>
<panel title= "Movies theme song list">
      <div class="movie-title">
          {{movie.title}}
      </div>
      <div class="movie-artist">
          {{movie.artist}}
      </div>
      <div class="movie-album">
          {{movie.album}}
      </div>
      </panel>
</template>

<script>
import MoviesService from '@/services/MoviesService'
import Panel from '@/components/Panel'
export default {
  async mounted () {
    const movieId = this.$store.state.route.params.movieId
    this.movie = (await MoviesService.show(movieId)).data
  },
  data () {
    return {
      movie: {}
    }
  },
  components: {
    Panel
  }
}
</script>

电影ontroller.js:

const {Movie} = require('../models')

module.exports = {
  async show (req, res) {
    try {
      const movie = await Movie.findById(req.params.movieId)
      res.send(movie)
    } catch (err) {
      res.status(500).send({
        error: 'An error has occured trying to fetch the movie'
      })
    }
  },
  async post (req, res) {
    try {
      const movie = await Movie.create(req.body)
      res.send(movie)
    } catch (err) {
      res.status(500).send({
        error: 'An error has occured trying to create the movie'
      })
    }
  }
}

电影服务。js:

import Api from '@/services/Api'

export default {
  index () {
    return Api().get('movies')
  },
  show (movieId) {
    return Api().get(`movies/${movieId}`)
  },
  post (movie) {
    return Api().post('movies', movie)
  }
}

共有1个答案

夏景胜
2023-03-14

我在数据库中看不到您的实际电影对象,因此我将进行部分假设。

findById()是您尝试查找电影的方式。你的身份证号码是1。FindById()需要自动生成的_id字段中的数据。_id更接近于5d8c369e69ccb034cc31b816

如果你改变:

await Movie.findById(req.params.movieId)

await Movie.findOne({ id: { $eq: req.params.movieId })

如果数据库对象的字母大写,请将此处的id更改为id。

你得到了什么?有什么变化吗?

可能值得展示一个包含整个电影数据库条目的原始对象,以查看其中的所有内容,如果我走错了路,可以进一步提供帮助。。。

 类似资料:
  • 我是一个电子新手,我想在窗口加载时从服务器获取一些数据,这样我就可以把这些数据显示给用户。我尝试在窗口加载时使用,但它不起作用!表示在加载窗口时未触发。请告诉我当窗口加载时如何从服务器获取数据? index.html

  • Im编写了一个小的Android应用程序,它应该从npm JSON服务器获取数据。它会抛出一个异常。我确实使用AsyncTask扩展了connection类,并在“DoInBackground”中执行了代码,但它仍然抛出了一个异常。请帮帮我. 代码如下: logcat告诉我们:

  • 大家好,我是java多线程新手。有人能帮我吗: 我的服务: SpringBoot应用程序: 异步配置: 控制器: 当我点击这个来自邮递员的get请求时,它在响应中显示为空白。我知道我的调用是异步进行的,响应甚至在调用我的方法之前就回来了。有没有办法通过更改邮递员或Spring启动应用程序中的一些设置来查看此响应

  • 我正在使用ipython笔记本电脑,通过连接到一个服务器,我不知道如何通过编程将东西(例如数据帧、.csv文件等)下载到本地计算机。因为我不能像C://user/。。。它会下载到他们的机器上而不是我的

  • 在使用RestTemplate从另一个服务获取数据时,我在postman中出错。 我有两种服务。第一个服务有userdetails实体类,第二个服务有posts实体类。这是邮局管理员的代码。 我在《邮递员》中看到了这个错误。 编辑-尝试@Pijotrek的解决方案后,我现在得到这个错误。 这是我的实体类、DAO和JPARepository 这是UserDetails的实体类 这是我一直从后控制器调