每个使用expressjs和mongoose的例子都是这样的:
const contentTypes = await ContentType.find().sort({createdAt: -1});
res.json(contentTypes);
但在这种情况下,我们将通过 REST api 返回所有文档(甚至 Mongoose 版本字段“_v”)。我认为描述这样的接口(interface)是很好的做法
export class ContentTypeEntry {
id: string;
name: string;
}
并将 mongoose 类型转换为该接口(interface)对象并返回该 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 对象以仅返回所需的数据并省略响应中的版本字段等内容。
关于node.js - Mongoose、ExpressJs - 公开 mongo 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51328414/