【发布时间】:2020-10-07 10:01:50
【问题描述】:
我已经使用自定义 Express 实例构建了一个 KeystoneJS v5 app 来提供数据。 我的数据存储在 Postgres 数据库中,其中包含以下模型:
CREATE TABLE "Link" (
id integer DEFAULT PRIMARY KEY,
customer text,
slug text
);
我已经根据 slug 属性构建了动态路由:
knex('Link').select('slug').then(function(result){
const data = result.map(x => x.slug)
data.forEach(url => {
express.get(`/${url}`, function (req, res) {
res.render('index');
})
});
});
一切都按预期工作,但每次在 Link 表中插入新的 slug 时,我都必须重新启动节点服务器。 你知道如何避免这种情况吗? 谢谢!
【问题讨论】:
-
应该是相反的,你的快速获取应该接受 slug 作为参数,然后你可以检查 slug 是否存在于表中,否则你可以返回 404 或重定向到不同的页面。您必须重新启动的原因是因为 select 仅在服务器启动时运行。
标签: javascript node.js express keystonejs