Используйте Express.js в существующем проекте Nuxt.js

У меня есть проект, созданный с помощью Nuxt.js, и я хочу использовать Express, чтобы иметь возможность сообщать об ошибках в методе asyncData и т. Д.

Как я могу пойти импортировать это? Я полагаю, это не так просто, как npm install express --save.

У меня уже есть API, написанный на PHP, поэтому я бы не использовал его как API или что-то еще.

Это излишне? Или это необходимое зло?:D

2 ответа

Чтобы начать использовать 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, как обычно, в Express, я полагаю, потребовав его и включив в качестве промежуточного программного обеспечения.

Вам не нужно экспресс для обработки ошибок в asyncData. Для обработки ошибок в asyncData/fetch на ssr вам просто нужно подключиться к render:errorMiddleware. Например, смотрите плагин для часовых.

Но это только ловит ошибки, которые происходят на SSR. На клиенте, к сожалению, ничего не поймать (так же как и экспресс не сделает ничего для клиента). Существует ошибка для этого в nuxt см. Здесь

Другие вопросы по тегам