【问题标题】:Building a simple RESTful API with Mongo and Node使用 Mongo 和 Node 构建简单的 RESTful API
【发布时间】:2019-01-31 04:08:52
【问题描述】:

所以我正在处理一个最近从 Rails 切换到 Node 的项目,我最喜欢的功能之一是创建一个简单的 REST API 是多么容易,如下所示:

  • localhost:3000/materials/ 获取所有对象的 JSON 文档 内部材料
  • localhost:3000/materials/:id 获取对象的 JSON 输出 那个id,例如/materials/123123 给了我项目 123123
  • localhost:3000/materials/ 获取所有对象的 JSON 文档 内部材料

等等。我正在使用Mongo。有没有办法在 Node 中执行此操作,或者是否有我应该安装的指南或软件包可以执行此操作?

【问题讨论】:

  • MongoDB已经有了ReST接口,你为什么不用呢?
  • 真的吗?我不知道!你有什么好的资源可以用来了解它吗?
  • 好决定!是的,这是可能的,而且很容易。有很多教程涵盖了这个主题,我认为它不值得一个真正的答案。搜索“mongo node.js express rest”——你会发现太多内容无法阅读。
  • 它可能有点过时(不是最新的 mongo 驱动程序),但你可以找到 small example

标签: node.js mongodb mongoose


【解决方案1】:

查看 StrongLoop Suite 中的 LoopBack,它有一个内置的 RESTful api explorer,它使用 mongodb 连接器与 Mongo 交互。 http://docs.strongloop.com/loopback/#using-the-api-explorerhttp://strongloop.com/strongloop-suite/loopback/

例如,您可以使用以下命令创建“材料”模型: slc lb model materials 然后会在 localhost:3000/explorer 为您自动生成 restful api。

【讨论】:

    【解决方案2】:

    您可以使用 Restify,在 Node.js 中构建 RESTful Web 服务

    一个很好的教程在:https://www.openshift.com/blogs/day-27-restify-build-correct-rest-web-services-in-nodejs

    【讨论】:

      【解决方案3】:

      Express 似乎是你想要的。您可以非常简单地指定路线,如下所示:

      app.get('/:collection', function(request, response) {
        // the value of :collection is stored in request.params
        var coll = request.params.collection;
        var search = request.query; // a hash containing the querystring arguments
        // do stuff with request body, query parameters, etc.
        response.send(data); // send the response
      });
      
      app.get('/:collection/:item', function(request, response) {
        var coll = request.params.collection;
        var item = request.params.item;
        // do stuff
        res.json(data); // can also send a JSON response
      });
      

      【讨论】:

        【解决方案4】:

        看看restgoose。它是一个 Typescript 库,让简单的 REST API 开发变得超级简单。

        https://xurei.github.io/restgoose/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-11-15
          • 2015-05-14
          • 1970-01-01
          • 2017-07-06
          • 2016-08-03
          • 1970-01-01
          • 1970-01-01
          • 2017-04-22
          相关资源
          最近更新 更多