javascript - 如何使用nodejs动态创建Mongodb模式
问题描述
我想知道是否可以使用 Mongoose 模式、Node.js 和 Angular 在 mongodb 中动态创建表。
创建模式的基本方法是在 Node.js 中显式创建模型,如下所示:
import mongoose from 'mongoose';
const Schema = mongoose.Schema;
const postSchema = new Schema({
title: { type: 'String', required: true },
content: { type: 'String', required: true },
slug: { type: 'String', required: true }
});
let Post = mongoose.model('Post', postSchema);
是否可以通过使用来自 Angular 前端的用户输入来动态创建此模式?
解决方案
当然有可能...... - 建议使用express作为服务器框架:
import mongoose from 'mongoose';
import { Router } from 'express';
const router = Router();
router.post('/newModel/', createNewModel);
function createNewModel(req, res, next) {
const Schema = mongoose.Schema;
// while req.body.model contains your model definition
mongoose.model(req.body.modelName, new Schema(req.body.model));
res.send('Created new model.');
}
...但请小心!为用户提供一种如此轻松地修改数据库的方法通常不是一个好主意。
更新:格式与您希望在括号中的格式完全相同:
{
"title": { "type": "String", "required": "true" },
"content": { "type": "String", "required": "true" },
"slug": { "type": "String", "required": "true" }
}
推荐阅读
- javascript - 您如何在 discord.js 的计时器代码中发现错误?
- android - 生成签名的 Apk 未显示在“构建”下
- kotlin - 导入类的模拟返回值
- javascript - web3.js 有 TypeScript 类型定义吗?
- php - 如何使用php将一组拆分为单独的
- html - 运行 node.js 和 express 应用程序时出现“无法获取 /index.html”错误,但我没有任何 index.html
- deep-learning - CNN - 调整现有网络(例如 UNet)以适应输入/输出大小的正确方法
- node.js - nodejs express:将 express.static 路径设置为父文件夹 (/..) 错误
- automation - BackstopJS:无法使用 scrollToSelector 滚动页面以结束
- qt - 有条件地运行脚本