在现有的Nuxt.js项目中使用Express.js

时间:2018-06-25 17:01:54

标签: vue.js error-handling nuxt.js ssr bugsnag

我有一个用Nuxt.js构建的项目,我想使用express来报告有关asyncData方法等的bugsnag错误。

我该如何导入?我想这不像npm install express --save那样简单。

我已经有一个用PHP编写的api,所以我不会将其用作api或其他任何东西。

是不是太过分了?还是有必要的邪恶? :D

2 个答案:

答案 0 :(得分:4)

要开始将Express与现有的Nuxt项目一起使用,您需要设置一个简单的server.js文件,该文件可以设置Express服务器并将Nuxt应用程序添加为中间件。唯一的麻烦就是将其设置为在开发中自动重建。这是一个快速的示例server.js文件,该文件提取Nuxt并在不生产时处理构建。

const { Nuxt, Builder } = require('nuxt');
const app = require('express')();


// We instantiate Nuxt.js with the options
const isProd = process.env.NODE_ENV === 'production';
const config = require('./nuxt.config.js');

config.dev = !(isProd);
const nuxt = new Nuxt(config);

// No build in production
if (!isProd) {
  const builder = new Builder(nuxt);
  builder.build();
}
app.use(nuxt.render);
app.listen(3000);
console.log('Server is listening on http://localhost:3000');

然后,您可以按照通常的表达方式并入bugsnag,我认为是通过要求它并将其作为中间件来包含的。

答案 1 :(得分:0)

您无需表达即可处理asyncData中的错误。要处理ssr上asyncData / fetch中的错误,您只需挂接到render:errorMiddleware。有关示例,请参见sentry plugin

但是它只会捕获SSR上发生的错误。不幸的是,在客户端上不会捕获任何东西(以及表示不会为客户端做任何事情)。在nuxt中有一个错误,请参见here