【问题标题】:How to create a database and expose it over http inorder to receie data from a sensor如何创建数据库并通过 http 公开它以便从传感器接收数据
【发布时间】:2012-12-05 20:53:42
【问题描述】:

首先,对于本文中提到的所有技术,我都是新手。

我正在做一些事情,我有传感器,可以通过 HTTP post 发送他们的读数。传感器将通过 http 作为 XML 定期发送感测值。

我找到了一个链接 here,它解释了如何创建 REST API。

现在在上面的链接中很清楚,直到作者安装了 mongoDB。但是在那之后事情变得复杂了,作者没有解释之后代码中发生了什么。

我想不通的是,

如何使用 mondgoDB 在 node.js 中创建数据库并通过 http 公开该数据库,以便传感器发送读数。

如何在我的 URI 中访问此数据库?

如何访问数据添加到数据库的日期和时间。

非常感谢任何帮助。

【问题讨论】:

    标签: node.js mongodb express mongoose sensors


    【解决方案1】:

    我不是 node.js 专家,但同样的规则适用于这类东西。

    您必须了解您的数据库将无法直接访问。相反,它将是来自 node.js 的访问。您可以向 MongoDB 启动添加一个 --rest 选项,这将在 mongod 程序中启动一个自包含的 RESTlet,但这在这里可能不是一个好主意。

    据我所知,您的 jkust 对层感到困惑,这在这种情况下很常见,所以解释一下:

    • 您的传感器会将数据(我可能会将其更改为 JSON 格式,它比 XML 更具表现力且更小)发送到您运行的 node.js 服务器,即81.187.205.13
    • 它将发布到您正在运行的用于处理此数据的休息函数的任何目的地,即/someawesomecontroller/notsuchagoodfunction
    • 然后该函数(如您链接的教程所述)将获取此 POST,对其进行解析并使用 node.js 中的默认方法(通过驱动程序)插入 MongoDB。您可以在后面的部分中看到编写该教程的人这样做,即:

      exports.findById = function(req, res) {
      
      var id = req.params.id;
      console.log('Retrieving wine: ' + id);
      db.collection('wines', function(err, collection) {
          collection.findOne({'_id':new BSON.ObjectID(id)}, function(err, item) {
              res.send(item);
          });
      });
      };
      

    所以现在你需要的只是一些关于 node.js 中的 MongoDB 驱动程序如何工作的教程,这是一个很好的起点:Do you know any tutorial for mongoDB in nodeJS?

    希望对你有帮助,

    【讨论】:

    • 非常感谢您的回复。开始听起来确实是个好主意!我一定会调查的!意思是我也会看看 node.js 的 mongodb 驱动程序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多