Node.js 如何在使用Tootache hapi插件创建的两个模型之间建立关系模型?
我正在使用该框架构建一个节点服务器,并尝试使用该插件为MongoDB创建CRUD端点,但我始终无法弄清楚如何在两个对象之间创建关系 我将应用程序简化为一个非常简单的场景: 我有两个CRUD模式,一个用于作者,一个用于书籍。一本书包含作者的id,但不包含姓名。问题是:如何编写一个路由,返回一本包含作者姓名的书Node.js 如何在使用Tootache hapi插件创建的两个模型之间建立关系模型?,node.js,hapijs,joi,Node.js,Hapijs,Joi,我正在使用该框架构建一个节点服务器,并尝试使用该插件为MongoDB创建CRUD端点,但我始终无法弄清楚如何在两个对象之间创建关系 我将应用程序简化为一个非常简单的场景: 我有两个CRUD模式,一个用于作者,一个用于书籍。一本书包含作者的id,但不包含姓名。问题是:如何编写一个路由,返回一本包含作者姓名的书 var bookCRUD = { collection: 'books', create: { payload: Joi.object().keys({
var bookCRUD = {
collection: 'books',
create: {
payload: Joi.object().keys({
authorId: Joi.string().required(),
title: Joi.string().required()
}),
},
update: {
payload: Joi.object().keys({
authorId: Joi.string(),
title: Joi.string()
}),
}
}
var authorCRUD = {
collection: 'authors',
create: {
payload: Joi.object().keys({
name: Joi.string().required()
}),
},
update: {
payload: Joi.object().keys({
name: Joi.string().required()
}),
}
}
我们在两种模式上都应用了Tootache,并获得了两种模型:
var Book = require('toothache')(bookCRUD);
var Author = require('toothache')(authorCRUD);
检索某本书的路径如下所示:
plugin.route({
path: '/books/{id}',
method: 'GET',
config: {
handler: Book.get
}
});
并将返回:
{
"_id": "54762fd0654c479400daa9d4",
"authorId": "547607c7c80064281e7a7b50",
"title": "Some Book Title"
}
我如何在同一处理程序中询问作者模型,以获得如下答案:
{
"_id": "54762fd0654c479400daa9d4",
"authorId": "547607c7c80064281e7a7b50",
"authorName": "Some Great Writer",
"title": "Some Book Title"
}
牙痛插件似乎使关系数据建模变得非常困难,这是一个遗憾,因为在现实世界中,您将无法只使用嵌入式数组,而将被迫使用标准化数据。我真的很感激你能帮我。提前谢谢你