node.js - Mongoose、ExpressJs - 公开 mongo 文档

标签 node.js rest express mongoose

每个使用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/

相关文章:

php - 保护无 session RESTful API 端点

angularjs - 如何通过 Express 路由到多个 Angular 应用程序?

json - Go Lang RESTful API 不工作 JSON

java - 为什么HttpRequest在第二次读取时返回NULL?

javascript - 如何在 Node Js 中上传期间更改目录并重命名文件?

node.js - 当用户访问 404 页面时,静态资源的快速链接会中断

javascript - 有效载荷字节与实际字节不同

mysql - 管理应用程序生成文件的正确方法

javascript - 使用 Yargs 执行代码之前要求用户确认

node.js - create-react-app : The term 'create-react-app' is not recognized as the name of a cmdlet, 函数、脚本文件或可操作程序中存在问题