基于MongoDB与NodeJS构建物联网系统
更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud
目标
基于阿里云服务快速构建物联网系统
准备工作
ECS
MongoDB
EMR
Alinode
中间件代码
注意事项:ECS,MongoDB 可以选择按量计费的服务。
实例申请
Step1 拿到阿里云账号,登陆
Step2 控制台新建实例
新建实例: https://mongodb.console.aliyun.com/#/buy/mongodb?chargeType=PostPaid
新建实例时,请选择『按量付费』类型,并需要选择合适的CPU 内存规格,磁盘空间、并设置 root 密码(后续连接实例需要用到)。
连接实例
实例创建成功后,你可以在控制台查看实例的详细信息,包括复制集节点信息、复制集名称,用于客户端 Driver 连接的 Connection String),根据这些信息就能通过 MongoDB 的客户端 Driver 来访问实例。
配置连接数据库, 新增
config/config.js
文件
'use strict';var config = { name: 'production', mongodb: 'mongodb://user:pass@host1:port1,host2:port2/iot?replicaSet=name&authSource=admin'};module.exports = config;
user:pass
填购买时配置的用户名和密码
host1:port1
填节点1的信息,host2:port2
填节点2的信息。replicaSet=name
的name
替换成副本集的名称。
不使用默认的 admin
库,而是用 admin
鉴权创建 iot
库。
生产环境连接 MongoDB 实例时,请确保按复制集的方式正确连接,以保证服务的高可用。
在云服务器ECS上构建项目
1. 申请应用id(appid)和应用token(app secret)
阿里云账号登录 https://alinode.aliyun.com
点击按钮“立即使用”,接受“试用条款”
添加应用,填入应用名称后提交
系统自动生成
后续从应用主页->设置中查看appid和app secret。
2. 登录ECS
3. 一键安装alinode运行时
wget -q https://raw.githubusercontent.com/aliyun-node/alinode-all-in-one/master/alinode_all.shbash -i alinode_all.sh
需要输入信息时回车采用默认值,直到填写app id和app secret的时候输入上面步骤生成的app id 和 app secret。
4. 运行agentx
nohup agentx /path/to/yourconfig.json &
5. 下载项目到本地
git clone https://code.aliyun.com/alicloud_cto_office/IoT.git
6. 将申请到的MongoDB配置信息写入文件 config/config.js
'use strict';var config = { name: 'production', mongodb: 'mongodb://user:pass@host1:port1,host2:port2/iot?replicaSet=name&authSource=admin'};module.exports = config;
7. 运行项目
ENABLE_NODE_LOG=YES node bin/www
8. 浏览器打开
http://your-ecs-ip:8001