[Intel Edison開發板] 0四、Edison開發基於nodejs和redis的服務器搭建


1、前言

intel-iot-examples-datastore 是Intel提供用於全部Edison開發板聯網存儲DEMO所須要的服務器工程。該工程是基於nodejs和redis寫成的一個簡單的工程。針對nodejs和redis會在後面介紹。html

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

github上的連接介紹intel-iot-examples-datastore 分別搭載在本地、亞馬遜等上的方法。可是發現國外的雲使用須要用信用卡購買,其在國內的服務又和國外的不同,嘗試許久最終決定研究nodejs和redis在阿里雲/本地ubuntu上搭載服務器。git

  • redis 是一種nosql數據庫,提供五種數據類型:string,hash,list,set及zset(sorted set)。
  • expressjs是基於 Node.js 平臺,快速、開放、極簡的 web 開發框架。http://www.expressjs.com.cn/


2、redis

redis 是一種nosql數據庫,提供五種數據類型:string,hash,list,set及zset(sorted set)。 redis的教程在官網介紹的很是清晰,很少提。github

阿里雲上提供了redis數據庫,同時也能夠利用阿里雲的ECS本身搭建服務器。同時,爲了方便調試,我首先嚐試在本地虛擬機中實現運行環境,而後再移植到阿里雲的ECS上。web


3、本地虛擬中安裝nodejs及expressjs框架

程序是由expressjs+redis構成。其中expressjs是基於 Node.js 平臺,快速、開放、極簡的 web 開發框架。http://www.expressjs.com.cn/redis

我虛擬中的系統爲ubuntu12.04,起初自帶的nodejs版本低,不過升級後仍然有問題,最後重裝ubuntu爲最新版本16.04 STL 並嚴格按照該鏈接進行安裝 https://www.douban.com/note/360858696/,問題獲得解決。sql

besides,every start express,when close,should close the terminal!!!數據庫


4、本地虛擬機中安裝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.express

It's simpleubuntu


5、同一個局域網下訪問virtualBox中的nodejs服務器

前期因爲沒有看清楚windows console中ipconfig的內容,誤把VirtualBox Host-Only Network IP當成主機IP,而且覺得虛擬機哪裏配置錯了嘗試了不少次虛擬機網絡配置,其中典型的是看:VirtualBox的四種網絡鏈接方式詳解(看錯了,理論上無錯)

C:\Users\Administrator>ipconfig

Windows IP 配置


無線局域網適配器 無線網絡鏈接 2:

   媒體狀態  . . . . . . . . . . . . : 媒體已斷開
   鏈接特定的 DNS 後綴 . . . . . . . :

以太網適配器 本地鏈接:

   媒體狀態  . . . . . . . . . . . . : 媒體已斷開
   鏈接特定的 DNS 後綴 . . . . . . . :

無線局域網適配器 無線網絡鏈接:

   鏈接特定的 DNS 後綴 . . . . . . . :
   本地連接 IPv6 地址. . . . . . . . : fe80::8d17:68fb:b356:da0d%14
   IPv4 地址 . . . . . . . . . . . . : 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%18
   IPv4 地址 . . . . . . . . . . . . : 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);便可


系列文章:



@beautifulzzzz
智能硬件、物聯網,熱愛技術,關注產品
博客:http://blog.beautifulzzzz.com
sina:http://weibo.com/beautifulzzzz?is_all=1
相關文章
相關標籤/搜索