试图找出用于REST API的mongoose关系编码

这是一个愚蠢的问题,但我试图通过谷歌,代码snippits,教程包围我的头,所有这些都导致我的例子,模型太浅,我想要做的代码。

我有一个应用程序,我想开发数据是父母和孩子的forms: – – 组织 – 属于这些组织的项目 – 属于这些项目的发布

等等,但是我并不完全理解如何在后面的expression式中编写路由,我来自SQL关系背景。 我使用cookies,还是部分路线? 我知道如何build立模型,从我的理解,使用:

var organisationSchema = ({ name: String, email: String, description: String, users: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }] }); 

为组织和

 var projectSchema = ({ name: String, description: String, users: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }] } 

为项目,但如何设置我的邮政路线将项目添加到正确的组织

 router.route('/api/project') .post(function(req, res){ project = new Project(); project.name = req.body.name; project.organisation = req.body.organisation; if (err) res.send(err); }) project.save(function(err){ if (err) res.send(err); res.json({ message: 'Project ' + project.name + ' created.'}); }) }) 

在这个例子中,我需要一个cookie来填充组织吗?

如果您的项目属于组织,您可能需要在您的组织架构中包含一个objectIds数组,该组架构将包含项目ID或项目模式中将包含相关组织标识的字段。

您可以在正文中或者在URL参数中正确发送适当的组织。

例如,类似这样的东西:

 router.route('/api/:organizationId/project') .post(function(req, res, next) { var project = new Project({ name: req.body.name, organization: req.params.organizationId }); if(err) { return next(err); } project.save(function(err, savedProject) { if(err) { return next(err); } return res.status(200).json({ message: "Project " + savedProject.name + " created." }); } } 

如果你注意通讯/消息传递模型和路由在这个仓库中,它可能会帮助: https : //github.com/joshuaslate/mern-starter/tree/master/server