Blog

Blog

PHODAL

MongoDB Nodejs构建CoAP物联网系统

So,在还没适应印度TWU生活的时候,还是写写MongoDB与CoAP版物联网系统的那些事情吧。

开始之前

你需要安装有MongoDB,并保证其能启动。

MongoDB GUI

在Mac OS下面有一个叫Robomongo的工具可以方便我们来调试程序

Node Mongodb

我们用的库是https://github.com/mongodb/node-mongodb-native

版本用的是2.0。

Node MongoDB 示例

在这里引用官方给的例子,于是就有了一次简单的连接测试

var MongoClient = require('mongodb').MongoClient
  , assert = require('assert');

var url = 'mongodb://localhost:27017/myproject';
MongoClient.connect(url, function(err, db) {
  assert.equal(null, err);
  console.log("Connected correctly to server");

  db.close();
});

这个测试是只是用于测试是否联上了数据库。

MongoDB CoAP数据初始化

于是我们可以同https://github.com/gmszone/iot-coap一样,配置一个简单的环境。

MongoClient.connect(mongodb_url, function (err, db) {
    errorHandler(err);

    var insertDocuments = function (db, callback) {
        var collection = db.collection(config.mongodb_documents);
        collection.insert(config.mongodb_init, function (err, docs) {
            callback(docs);
        });
    };

    var findDocuments = function (db, callback) {
        var collection = db.collection(config.mongodb_documents);
        collection.find(config.mongodb_init[0]).toArray(function (err, docs) {
            if (_.isEmpty(docs)) {
                insertDocuments(db, function () {
                    db.close();
                });
            }
            callback(docs);
        });
    };
    findDocuments(db, function () {
        db.close();
    });
});

接着我们就可以插入这些数据。上面的代码来得有些早,一个简单的插入Documents的代码,如下所示:

var insertDocuments = function(db, callback) {

  var collection = db.collection('documents');
  collection.insert([
    {a : 1}, {a : 2}, {a : 3}
  ], function(err, result) {
    callback(result);
  });
}

而我们只是结合了插入和查询来完整一次简单的数据判断,以免一直插入数据。

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806

新书《前端架构:从入门到微前端》

《前端架构:从入门到微前端》是一本围绕前端架构的实施手册,从基础的架构规范,到如何设计前端架构,再到采用微前端架构拆分复杂的前端应用。本书通过系统地介绍前端架构世界的方方面面,来帮助前端工程师更好地进行系统设计。

前端架构包含以下五部分内容:

  • 设计:讲述了架构设计的模式,以及设计和制定前端工作流。
  • 基础:通过深入构建系统、单页面应用原理、前端知识体系等,来构建出完整的前端应用架构体系。
  • 实施:通过与代码结构的方式,介绍如何在企业级应用中实施组件化架构、设计系统和前后端分离架构。
  • 微前端:引入6种微前端的概念,以及如何划分、设计微前端应用,并展示了如何实现这6种微前端架构。
  • 演进:提出更新、迁移、重构、重写、重新架构等架构演进方式,来帮助开发人员更好地设计演进式架构。
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Developer, Consultant, Writer, Designer

ThoughtWorks 高级咨询师

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 与我沟通

标签