【发布时间】:2019-02-15 12:11:01
【问题描述】:
我有一个使用 NextJS 的项目,使用 Express 进行服务器端路由。
lib/routes/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)获取路由(例如博客部分)的 slug。我想知道当应用程序已经运行时,我如何处理管理员更改 CMS 中的 slug?
我猜我需要重新启动应用程序才能使新的 slug/route 正常工作。在这种情况下,我是否需要使用 webhook 并监听来自 CMS 的更改,然后以某种方式以编程方式重新启动应用程序?这可能有效,但可能会增加开销。有更好的方法吗?
【问题讨论】:
标签: javascript express next.js contentful