Angularjs 如何基于通过角度前端开发的用户创建的模式在node js中动态创建模型和路由

Angularjs 如何基于通过角度前端开发的用户创建的模式在node js中动态创建模型和路由,angularjs,node.js,mongoose,mean-stack,Angularjs,Node.js,Mongoose,Mean Stack,我是一个卑鄙的新手,正在开发一个MEAN stack应用程序,该应用程序允许用户以交互方式定义自己的mongoose模式,然后用数据填充它们(例如,购物清单、联系人列表或其他任何内容)。我已经成功地(1)使用户能够使用可以转换为模式的angular表单创建一组字段;以及(2)将新模式的json发布到节点服务器 然后我计划将这个json转换成一个模式。我认为使用它是最有意义的(就制作模式而言,这对我来说非常简单) 到目前为止,代码看起来像这样 角度: $scope.makeJson = funct

我是一个卑鄙的新手,正在开发一个MEAN stack应用程序,该应用程序允许用户以交互方式定义自己的mongoose模式,然后用数据填充它们(例如,购物清单、联系人列表或其他任何内容)。我已经成功地(1)使用户能够使用可以转换为模式的angular表单创建一组字段;以及(2)将新模式的json发布到节点服务器

然后我计划将这个json转换成一个模式。我认为使用它是最有意义的(就制作模式而言,这对我来说非常简单)

到目前为止,代码看起来像这样

角度:

$scope.makeJson = function() {
    $http.get('http://localhost:3000/sets/' + $scope.set._id)
        .success(function (data, status) {

         objectname = data.title;
         this[objectname] = data;

         $http.post('/makeschema',this[objectname]).
            success(function() {
                console.log("Success");
            })
            .error(function(data){
             console.log('Error: ' + data);
         });  

    }).error(function (data, status) {
            $scope.response = 'Request failed';
    });  
  }
节点:

但是接下来呢(即,一旦我创建了模式)?我如何才能从这里开始,真正地让路由设置链接回到我的角度前端?我所有的预定义模式都在
/models
文件夹中有一个
schemaName.js
文件,在
/routes
文件夹中有一个
schemaName.js
,并与
app.js
中的常规内容连接:

var sets = require('./routes/sets')
app.use('/sets', sets); 
那么,我怎样才能真正让新创建的模型在angular中访问呢?任何帮助都将不胜感激


谢谢大家!

让他们创建自己的模式是一项重要的要求吗?通常情况下,对于这种情况,您只需将数据添加到现有模型中。您甚至可以使用
{strict:false}
来实现完整的模式,让他们添加任何内容。我不确定!你能给我举个例子说明这是怎么回事吗?我希望用户能够管理不同类型的列表,甚至可能(最终)将这些列表链接在一起(例如,将人员列表中的人员添加到项目列表中,等等)。。。还有筛选、聚类、排序等。列表中的项目。。。我以为我需要架构来实现这一点,但意识到我可能错了!我所说的列表是指类似于具有N个属性的mongodb文档。。。非常感谢。用于链接您可以拥有的文档。您还可以拥有混合类型对象的数组。使用高级mongoose查询,您可以过滤、排序(集群?)这些数组。有很多选择。如果不完全了解您的用例,就很难推荐。但我只是想确保你在决定继续非标准方式之前,完全了解所有标准方式。模式IMO应该由您(作为程序员)定义,而不是让客户端随意创建它们。它会升起各种各样的安全旗!我熟悉使用mongoose的填充链接文档。我想允许用户为他们的列表定义一组属性(就像模式一样),并使用该定义自动创建表单,允许用户填充他们的列表(就像文档一样)。然后,他们可以执行他们可能需要的任何常规数据库操作(例如过滤、排序、更新、链接等)。如果有什么更具体的我可以告诉你,可能会帮助你回答,请让我知道。非常感谢@因此,我进行了一次尝试,决定只使用两个实际模式,一个允许用户定义虚拟模式的结构,另一个存储所有项目,而不考虑“模式”,并按类型交叉引用。到目前为止,一切顺利。当我开始做更复杂的交叉引用时,我将不得不看看我是否会被困在更深的线下。。。谢谢你给我指明了正确的方向。
var sets = require('./routes/sets')
app.use('/sets', sets);