[Intel Edison开发板] 04、Edison开发基于nodejs和redis的服务器搭建

一、前言

intel-iot-examples-datastore 是Intel提供用于所有Edison开发板联网存储DEMO所需要的服务器工程。该工程是基于nodejs和redis写成的一个简单的工程。针对nodejs和redis会在后面介绍。

It is a Node.js* application written using Express* (https://github.com/strongloop/express). It uses a Redis* (http://redis.io) data store.

github上的链接介绍了 intel-iot-examples-datastore 分别搭载在本地、亚马逊等上的方法。但是发现国外的云使用需要用信用卡购买,其在国内的服务又和国外的不一样,尝试许久最终决定研究nodejs和redis在阿里云/本地ubuntu上搭载服务器。

  • redis 是一种nosql数据库,提供五种数据类型:string,hash,list,set及zset(sorted set)。
  • expressjs是基于 Node.js 平台,快速、开放、极简的 web 开发框架。http://www.expressjs.com.cn/

二、redis

redis 是一种nosql数据库,提供五种数据类型:string,hash,list,set及zset(sorted set)。 redis的教程在官网介绍的非常清晰,不多提。

阿里云上提供了redis数据库,同时也可以利用阿里云的ECS自己搭建服务器。同时,为了方便调试,我首先尝试在本地虚拟机中实现运行环境,然后再移植到阿里云的ECS上。

三、本地虚拟中安装nodejs及expressjs框架

程序是由expressjs+redis构成。其中expressjs是基于 Node.js 平台,快速、开放、极简的 web 开发框架。http://www.expressjs.com.cn/

我虚拟中的系统为ubuntu12.04,起初自带的nodejs版本低,不过升级后仍然有问题,最后重装ubuntu为最新版本16.04 STL 并严格按照该连接进行安装 https://www.douban.com/note/360858696/,问题得到解决。

besides,every start express,when close,should close the terminal!!!

四、本地虚拟机中安装Redis

follow the try.redis.io to try the nosql database,and then follow the redis.io/download to download build install run test redis.

It's simple

五、同一个局域网下访问virtualBox中的nodejs服务器

前期由于没有看清楚windows console中ipconfig的内容,误把VirtualBox Host-Only Network IP当成主机IP,并且以为虚拟机哪里配置错了尝试了很多次虚拟机网络配置,其中典型的是看:VirtualBox的四种网络连接方式详解(看错了,理论上无错)

C:\Users\Administrator>ipconfigWindows IP 配置无线局域网适配器 无线网络连接 2:媒体状态  . . . . . . . . . . . . : 媒体已断开连接特定的 DNS 后缀 . . . . . . . :以太网适配器 本地连接:媒体状态  . . . . . . . . . . . . : 媒体已断开连接特定的 DNS 后缀 . . . . . . . :无线局域网适配器 无线网络连接:连接特定的 DNS 后缀 . . . . . . . :本地链接 IPv6 地址. . . . . . . . : fe80::8d17:68fb:b356:da0d%14IPv4 地址 . . . . . . . . . . . . : 192.168.31.8子网掩码  . . . . . . . . . . . . : 255.255.255.0默认网关. . . . . . . . . . . . . : 192.168.31.1以太网适配器 Bluetooth 网络连接:媒体状态  . . . . . . . . . . . . : 媒体已断开连接特定的 DNS 后缀 . . . . . . . :以太网适配器 VirtualBox Host-Only Network:连接特定的 DNS 后缀 . . . . . . . :本地链接 IPv6 地址. . . . . . . . : fe80::4d85:4389:ed42:9710%18IPv4 地址 . . . . . . . . . . . . : 192.168.56.1子网掩码  . . . . . . . . . . . . : 255.255.255.0默认网关. . . . . . . . . . . . . :隧道适配器 isatap.{87F755D7-825F-48BD-829D-5F62EA5FB919}:媒体状态  . . . . . . . . . . . . : 媒体已断开连接特定的 DNS 后缀 . . . . . . . :隧道适配器 本地连接* 4:媒体状态  . . . . . . . . . . . . : 媒体已断开连接特定的 DNS 后缀 . . . . . . . :隧道适配器 isatap.{00206601-AE24-4954-88C4-E9546B81CE0E}:媒体状态  . . . . . . . . . . . . : 媒体已断开连接特定的 DNS 后缀 . . . . . . . :隧道适配器 isatap.{912E0BF2-F07B-4BDF-AE76-1A197AB49063}:媒体状态  . . . . . . . . . . . . : 媒体已断开连接特定的 DNS 后缀 . . . . . . . :

出现上述歧途的另一个原因是虚拟机中用localhost:3000能访问,但是用IP不能访问,所以一直误导我以为虚拟机网络问题,而真正原因是nodejs app配置为题!!!

最后在 http://cnodejs.org/topic/50bf7116637ffa4155a2650c 找到了解答:因为绑定的是"127.0.0.1"ip,所以只能127.0.0.1和localhost访问。因此修改nodejs工程里的setting.js文件里的HOST = (process.env.HOST);即可

系列文章:

  • [Intel Edison开发板] 01、Edison开发板性能简述
  • [Intel Edison开发板] 02、Edison开发板入门
  • [Intel Edison开发板] 03、Edison开发IDE入门及跑官方提供的DEMO


@beautifulzzzz
智能硬件、物联网,热爱技术,关注产品
博客:http://blog.beautifulzzzz.com
sina:http://weibo.com/beautifulzzzz?is_all=1

转载于:https://www.cnblogs.com/zjutlitao/p/6057841.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将Lucene搜索集成到应用程序中

本文是我们名为“ Apache Lucene基础知识 ”的学院课程的一部分。 在本课程中,您将了解Lucene。 您将了解为什么这样的库很重要,然后了解Lucene中搜索的工作方式。 此外,您将学习如何将Lucene Search集成到您自己的应用程序中,以…

mysql运算结果放入表中_MySQL表1新增数据,计算开始、结束日期之间所有时间,插入到表2中...

新建表c3#id设置自增量,kk是要同步的一些数据值,dd是开始时间,dde是结束时间CREATE TABLE c3 (id int(11) NOT NULL auto_increment PRIMARY KEY,kk varchar(255),dd datetime,dde datetime)新建表c4#id也设置自增量,kk是要同步…

git-svn — 让git和svn协同工作

git-svn — 让git和svn协同工作svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目。但是因为它的采用中心化管理,不可避免的存在本地代码的备份和版本管理问题。也就是说对于尚未或暂无法提交到Subversion服务器的本地代码来说,存在着…

longtext长度为0是什么意思_为什么 HashMap 中链表长度大于 8 才转化为红黑树?

Java 中的 HashMap 采用链表法来解决哈希冲突(HashMap 原理),即具有相同桶下标的键值对使用一个链表储存。当链表变长时,查找和添加(需要确定 key 是否已经存在)都需要遍历这个链表,速度会变慢。…

Ulink2 No Ulink Device found 解决办法

一、背景keil使用ULINK2调试的时候,提示"No Ulink Device found","error: flash download failed - Target DLL has cancelled" 。之前一直都OK,然后今天突然不行,插上的时候,"COM",&qu…

python图形界面教程_图形教程

python图形界面教程众所周知,我们可以借助Java库制作游戏,这些库为我们提供制作游戏所需的图形。 因此,今天我将开始一个关于Java图形的非常新的部分。 我之前曾发表过有关如何制作所得税计算器的文章 。 首先要满足一些先决条件:…

java创建树结构_Java学习之XML-017

如果想快速有效的学习,思想核心是“以建立知识体系为核心”,具体方法是“守破离”。反复练习直到熟练。————百战程序员1.0 XML1.1 XML 简介XML 指可扩展标记语言。XML 被设计用来传输和存储数据。1. 什么是XMLXML 指可扩展标记语言(EXten…

dll文件是什么

dll实际上是动态链接库的缩写,从windows1.0开始,动态链接库就是整个操作系统的基础,那么这有什么作用呢?在dos时代,程序员是通过编写程序来达到预期的目的的,每实现一个目的就需要编写一个程序,…

minecraft pythonapl_Substance PythonAPI入门案例

第一次在知乎发文,技术朋友们请多包涵。Substance Designer自去年夏天2018版推出Python API至今已有一年,从一开始的寒酸到现在的初成规模,官方的API库也随着版本的更新不断完善。目前网上(包括youtube)相关的教程甚少,即便是官方…

创建示例HTTPS服务器以获取乐趣和收益

通常,在开发人员或/和针对实际场景进行测试期间,我们(开发人员)面临着运行成熟的HTTPS服务器的需求,可能同时进行一些模拟。 在JVM平台上,除非您知道适合此工作的正确工具,否则它过去并不是一件…

WebDriver API元素的定位

一、以下截图为用FireBug定位的用火狐(Firefox)浏览器打开的百度首页,下面所讲述的八种定位方法,就是以该截图中的百度输入框为例子。 ①、FireBug是Firefox浏览器下的开发类插件,通过该插件可以查看HTML、CSS、Javascript控制台、网络状况监…

mysql字符乱码百度_如何解决MySQL字符集乱码问题

变量 a 的字符编码是由参数 CHARACTER_SET_CLIENT 决定的,假设此时编码为 A,也就是变量 a 的编码。2. 写入语句在发送到 MySQL 服务端之前的编码由 CHARACTER_SET_CONNECTION 决定,假设此时编码为 B。3. 经过 MySQL 一系列词法,语…

[水煮 ASP.NET Web API2 方法论](1-6)Model Validation

问题 想要 ASP.NET Web API 执行模型验证,同时可以和 ASP.NET MVC 共享一些验证逻辑。 解决方案 ASP.NET Web API 与 ASP.NET MVC 支持一样的验证机制,都是通过System.ComponentModel.DataAnnoataions 的属性验证。使用框架提供的相关验证属性&#xff0…

findbugs-dea_FindBugs和JSR-305

findbugs-dea假设该组开发人员在大型项目的各个部分上并行工作-一些开发人员在进行服务实现,而其他开发人员在使用该服务的代码。 考虑到API的假设,两个小组都同意服务API,并开始单独工作。 您认为这个故事会有幸福的结局吗? 好吧…

课程2 谈论音乐行业的趋势

1. 音乐词汇 CDdownloadLPsrecordsvinyl 黑胶sounddlbum covers 专辑封面2. 使用类似单词谈论各种录制你和聆听音乐的不同媒体 I still prefer the sound of my old LP records.My father used to by a lot of CDs.Most of my music these days is MP3s.3. 你可以使用这些词来谈…

带有ActiveMQ和Maven的JMS Sender应用程序

我们已经看到了如何使用ActiveMQ和Maven创建JMS Receiver应用程序 。 让我们看看我们如何类似地创建JMS Sender应用程序 。 web.xml与创建接收器应用程序时使用的相同&#xff1a; <web-app xmlns"http://java.sun.com/xml/ns/javaee"xmlns:xsi"http://www…

mysql自连接查询的sql语句_mysql 自连接

SELECT语句中的自连接。到目前为止&#xff0c;我们连接的都是两张不同的表&#xff0c;那么能不能对一张表进行自我连接呢&#xff1f;答案是肯定的。有没有必要对一张表进行自我连接呢&#xff1f;答案也是肯定的。表的别名&#xff1a;一张表可以自我连接。进行自连接时我们…

Spring的Lifecycle

Lifecycle接口定义了每个对象的重要方法&#xff0c;每个对象都有自己的生命周期需求&#xff0c;如下&#xff1a; public interface Lifecycle { void start(); void stop(); boolean isRunning(); } 任何spring管理的对象都可以实现这个接口。那么&#xff0c;当Appl…

mysql aes密钥大于16位_aes秘钥限制问题解决办法

在oarcle jdk1.8上执行256位的aes秘钥加密报错如下:java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key sizeat com.xx.opal.core.utils.aes.AESTool.encryptWithoutEncode(AESTool.java:33)at com.xx.opal.aes.AESTest.test(AESTest.java:19)at sun…

background-clip与background-origin

规定背景的绘制区域 浏览器支持 IE9、Firefox、Opera、Chrome 以及 Safari 支持 background-clip 属性。 注释&#xff1a;Internet Explorer 8 以及更早的版本不支持 background-clip 属性。IE9、Firefox、Opera、Chrome 以及 Safari 支持 background-clip 属性。 有三个值&am…