【发布时间】:2019-08-30 02:28:59
【问题描述】:
我对 Mongoose 和 Nodejs 还是很陌生。
我想允许用户在我的应用程序中定义 Mongoose Schema,并将它们保存在数据库中。稍后他们也可以按照该模式创建文档。类似于 Headless CMS。
我已经能够通过 API 请求创建架构 - 但我将如何保存架构以供以后使用。我可以将 Mongoose Schema 存储在数据库中吗?
所有架构都是空的,所以我需要的只是唯一的名称
app.get(/create/:schemaName, (req, res) => {
let Schema = mongoose.Schema;
let myNewSchema = new Schema({
schemaName: {
type: 'String',
default: ''
},
attributes: {
type: Object,
blackbox: true
}
});
let model = mongoose.model(schemaName, myNewSchema)
functionThatAddRoutesToModel(model)
})
创建 Schema 后,我向该模型添加了一些 API 路由
function functionThatAddRoutesToModel(model){
app.get(/exampleSchemaName/create, (req, res) => {
// model.findOne etc etc
})
...
}
这一切正常,但如果我关闭节点服务器,我会丢失所有架构并且所有功能都会消失。
是否可以将所有架构存储为数据库或 JSON 格式,然后在我启动服务器时创建所有架构?
我还想强调一下,我对此很陌生 - 因此,如果您有其他解决方案来创建类似应用程序的无头 cms - 我会全力以赴。
【问题讨论】: