Intel® Galileo和Intel® Edison开发板为开发者提供了一个平台,用于创建激动人心的新解决方案。本文将介绍如何使用Node.jsAPI与IBM Bluemix云服务建立连接,包括创建Bluemix应用程序、添加MongoDB数据库连接,以及存储和检索数据。
首先,登录到Bluemix控制台,选择DASHBOARD并点击CREATE APP。接着选择WEB并选择SDK forNode.js,然后点击CONTINUE。为应用程序命名并点击FINISH。在顶部,可以看到“Your app is staging”的状态。一旦部署完成,点击左侧面板的overview以查看仪表板。
在应用程序仪表板上,点击ADD A SERVICE OR API。在服务页面,点击Data and Analytics部分的MongoDBby Compose服务。在右侧,可以看到输入Username、Password、Host和Port的选项。如果还没有Compose账户,可能需要创建一个。点击Register at Compose。注册后,登录Compose.io并创建一个MongoDB部署。使用默认值,点击Create Deployment。部署创建需要几分钟时间;可以在下方看到状态。
部署完成后,将被重定向到入门页面,可以在此处创建数据库。点击右上角的Add Database来创建数据库,为数据库命名并点击Run。为了使用连接字符串访问数据库,为数据库添加一个用户。点击Admin Settings以获取主机名和端口详细信息。在Bluemix添加服务页面,输入hostname、port、username和password的详细信息。点击创建后,点击弹出窗口上的RESTAGE。
重新部署完成后,应该看到一个状态,显示“Your app is running。”在右上角。
在项目中安装mongodb npm模块。
npm install mongodb
设置mongodb连接。
创建一个node引用变量用于模块,以及一个客户端对象用于建立数据库连接。
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
创建mongodb连接。connect函数返回一个db对象,其中包含集合对象。集合对象用于插入和检索云中的数据。可以从Bluemix控制台获取连接URL。选择应用程序仪表板上的MongoDBby Compose服务,然后点击Show Credentials。
使用这些凭据创建连接URI。按照以下示例形成URI,以在node应用程序中使用:
mongodb://<user>:<password>@<uri>:<port>/iot-compose?ssl=true
例如:
var uri = 'mongodb://iot-kona:intel123@aws-us-east-1-portal.11.dblayer.com:27832/iot-compose?ssl=true';
复制凭据下的URI并传递给connect函数:
db = MongoClient.connect(uri, function(err, db) {});
数据可以存储为JSON对象或JSON对象数组。
var data = { 'sensor-id' : 'sens341', 'value' : 65.5 };
db = MongoClient.connect(config.url, function(err, db) {
var collection = db.collection(config.db);
collection.insert(data, function(err, result) {});
});
基于时间戳的查询:
var dataQuery = { "timestamp": { $gt: readQuery.timestamp } };
基于sensor_id的查询:
var dataQuery = { "sensor_id": { $eq: readQuery.sensor_id } };
运行查询:
var collection = db.collection(self.config.db);
collection.find(dataQuery).toArray(function(err, items) {
if (!err) {
console.log(JSON.stringify(items, null, ' '));
}
});
IBM Cloud文档
Mongodb npm模块
MongoDB by Compose
IoT Foundation Recipes