每个使用expressjs和mongoose的示例都是这样的:
const contentTypes = await ContentType.find().sort({createdAt: -1});
res.json(contentTypes);
但是在这种情况下,我们将通过REST api(甚至是猫鼬版本字段'_v')返回所有文档。我认为描述这样的接口会非常有用
export class ContentTypeEntry {
id: string;
name: string;
}
并将猫鼬类型转换为该接口对象并返回此DTO。我只是开始使用nodejs生态系统,所以也许在这个生态系统中直接返回ORM对象是正常的吗?
您如何处理Moongose对象和REST端点?
最佳答案
我不完全确定我的问题是否正确,但这就是我的响应对象的样子-
// GET /api/products/1010
{
"meta": {
"type": "success",
"code": 200,
"message": "Retrieved product number 1010"
},
"data": {
"id": 1010,
"name": "Apple iPhone X",
"description: "Yada yada",
"price": 1000
}
}
这只是将元数据和实际返回的数据分开,以使使用API的人更容易更好地处理错误。我还修改了JSON对象,使其仅返回所需的数据,并从响应中省略了诸如version字段之类的内容。