0

我有两个资源,称为“项目”和“标签”。添加新项目时,数据通过 POST 传输,并传递到 project.create(req, res)。这会将项目保存在 mongodb 数据库中,并res.send(200);在成功时返回。

我希望项目和标签具有多对多关系,以便我可以轻松列出所有标签、列出项目标签和列出标签项目。

存储这些标签的最简单方法是在 project.create 函数中查找+更新这些标签,然后将它们的 id 数组保存在一个数组中project.tags。但是,我觉得这违反了 DRY ......我在 tag.create(req, res) 中有相同的标签 find+upsert 代码。

我怎样才能使它在调用 project.create 时调用 tag.create?我也刚刚意识到,如果我创建一些执行 find+upsert 的中间件会更好吗?

4

1 回答 1

1

免责声明:此答案涉及 REST API 的一般良好实践(不是特别针对 MongoDB)。

了解现实生活中的 REST API 的一件重要事情是,某些资源可以是只读的(通常使用 MapReduce 从读写资源生成)。

假设您在概念上在项目和关键字之间有一个 nn 关联。修改此类链接更自然的地方是在项目中。因此,例如,您将拥有:

  • GETPUTDELETE /project/stackOverflow(真实对象),
  • GET /keyword/QnA(虚拟对象又名查询)。
于 2013-02-15T07:21:54.063 回答