首页 > 解决方案 > Nuxt.js 服务器端插件函数不是函数

问题描述

我创建了一个服务器端插件,我得到了

context.app.handleServerError 不是函数

// hanlde-server-error.js

export default ({ app }, inject) => {
  app.handleServerError = (method, error, data) => {
    const message = `An error occured in ${method}. ${error}`
    console.error(message)
    Sentry.captureException(new Error(message))
  }
}

// nuxt.config.js

  plugins: [
    { src: '~plugins/handle-server-error', mode: 'server' },
  ],

// 调用函数

  async asyncData(context) {
    // await store.dispatch('fetchAccounts')
    try {
      await undefinedFunction()
    } catch (error) {
      context.app.handleServerError('asyncData', error, { user: 'bambam' })
    }
  },

我是否正确 asyncData 使呼叫服务器端?根据文档,此功能应在上下文中可用。

标签: javascriptvue.jsnuxt.js

解决方案


仅在服务器端执行。

async asyncData(context) {
  if (process.server) {
    try {
      await undefinedFunction()
    } catch (error) {
      context.app.handleServerError('asyncData', error, { user: 'bambam' })
    }
  }
},

推荐阅读