У меня есть проект, использующий NextJS, с Express для маршрутизации на стороне сервера.
lib / router / getPages
const routes = require('next-routes')();
const getEntries = require('../helpers/getEntries');
module.exports = async (app) => {
const { items: [globalSetings] } = await getEntries({
content_type: 'xxxxxxxx',
include: 1,
limit: 1,
});
routes
.add('/', 'index')
.add(`/${globalSettings.fields.blogSlug}/:slug`, 'blog');
return routes.getRequestHandler(app);
};
server.js
const express = require('express');
const next = require('next');
const getPages = require('./lib/routes/getPages');
const app = next();
app.prepare().then(async () => {
const server = express();
const pageRoutes = await getPages(app);
server.use(pageRoutes);
server.listen(3000);
});
Я получаю слагов для маршрутов (таких как раздел блога) из моего CMS API (который в данном случае является Contentful).Мне интересно, как я справляюсь с администратором, меняющим слаг в CMS, когда приложение уже запущено?
Догадываясь, мне нужно будет перезапустить приложение, чтобы новый слаг / маршрут заработал.В этом случае мне нужно будет использовать веб-крючок и прослушивать изменения в CMS, а затем каким-то образом перезапустить приложение программным способом?Это может сработать, но может добавить накладных расходов.Есть ли лучший способ сделать это?