Используйте 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 см. Здесь