每个使用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字段之类的内容。

10-06 02:31