日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Clouda 之我见

發布時間:2023/12/18 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Clouda 之我见 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1?前言

官方文檔中已經介紹了基本部署和豐富的例子,而且很多網頁也提交了關于 clouda 意義和作用的相關文章。所以本篇博客中的主要重點在于介紹博主在安裝、使用、部署 clouda 中遇到的一些問題及解決辦法,希望對大家有所幫助。

2?環境搭建

2.1?node.js

http://nodejs.org/

1. 無法打開下載的安裝包

點擊 INSTALL 按鈕,提示“無法打開下載的安裝包”。所以還是從 download 下載比較好

2. DOWNLOAD 的文件不能安裝

直接下載 node.exe,就一個文件而已,發現下載的那個安裝包只有1M,而實際的大小應該是有 5M,所以,應該是下載的文件錯誤。重新下載,確保文件大小正確后,再次安裝即可。

2.2?MongoDB

http://www.mongodb.org/

1. 鏈接打開好慢

不知道是什么原因,官方 mongodb 網址的打開速度好慢好慢。我下載使用的是 32 位的 mongodb-win32-i386-2.4.8 也是等待了好久才下載下來的。本想傳到 CSDN 資源中的,由于文件太大了不能上傳,那讀者自己慢慢下吧,可能晚上的時候速度稍微好一些。

2. 配置環境變量

將程序路徑(例如:F:\Program Files\mongodb-win32-i386-2.4.8\bin) 加入到 path 目錄,然后在某個盤符的根目錄下創建如下路徑 /data/db (例如 f:/data/db)。注意一定要在根目錄下,而不是指當前路徑下。

3. 啟動 mongodb服務器

打開命令行窗口,進入上一步創建 data 文件夾的盤符,執行 mongod,啟動服務器。

如果需要連接數據庫,那么再打開一個新的命令行窗口,執行 mongo 即可

2.3?安裝 clouda

啟動 node.js 命令行,安裝好 sumeru 工具:

npm install -g sumeru

詳細參照?http://cloudajs.org/docs?中的步驟安裝即可。

3?初識 clouda

3.1?學習第一個項目

http://cloudajs.org/docs/step1_getting_started

在上述官網地址有詳細的步驟描述,這里主要介紹編程中遇到的想法及問題解決辦法。第一感覺是訪問創建的示例頁面時有些小卡,或許是因為 debug 的緣故吧…

1. 訪問地址 localhost:8080/debug.html/itworks,后面傳遞參數“itworks”代表什么意思呢?

通過查看文件夾目錄,debug.html 文件位于 myproject/app 目錄下,在從后來的示例中了解到:itworks 代表 sumeru.router 中添加的鏈接。

2. 類似 extjs 的目錄管理方式

突然發現這里的 js 使用方式和 extjs 的項目管理路徑方式很類似,因為 extjs 的目錄管理結構也是 app 文件夾中建立了各種類。

3. 不能找到控制器

錯誤信息:"error when pubsub callback on line 84 Can NOT find a controller [null]" 忘記將 controller/package.js 中的文件替換成 'helloworld.js' 了。

無需重新啟動服務器,隨時修改文件,隨時就可以看到效果,很不錯。

3.2?練習聊天室項目

http://cloudajs.org/docs/step2_your_first_app

  • 在 nodejs 命令行中創建 webchat 項目:sumeru init ./webchat
  • 創建 Model message 時,發現每個大括號結尾處都有個分號;和 extjs model 定義類似,可以定義字段名稱以及數據類型
  • package.js 是定義好了項目訪問地址的映射關系
  • 超喜歡 "pub-message.js" 這種命名方式,但不喜歡左大括號和右小括號結合在黏在一起的方式
  • 后面看不下去了,直接粘貼代碼,先運行來看看
  • 3.2.1?問題及解決

    1. Error: ENOENT, no such file or directory 'F:\workspace\webchat\app\controller\itworks.js hall.js'

    首先看到錯誤信息中包含了 'itworks.js' 文件,所以懷疑是 controller/package.js 中信息沒有修改正確,發現文件中我是這樣寫的:

    sumeru.packages(// 'itworks.js''hall.js')

    刪掉 "// 'itworks.js'" 這一行就可以了。看來 nodejs 不支持 "//" 這樣 的注釋方式呀。

    2. 瀏覽器可以打開網頁,但是從控制臺中看到如下信息:error when pubsub callback on line 84 Can NOT find a controller [null]

    演示地址寫成?http://localhost:8080/?正確寫法應該是:http://localhost:8080/debug.html/hall

    3.2.2?技術分析

    • 怎么為提交按鈕關聯事件響應的?
      在 controller/hall.js 中定義了提交消息的函數 submitMessage = function()

      那么怎么關聯到按鈕上的點擊事件的呢?

      在 controller/hall.js 定義的 env.onready 函數中:

      Library.touch.on('.messageSubmit', 'touchstart', submitMessage);

      那么發現是根據元素的樣式名進行綁定的。所以,我嘗試在添加一個提交按鈕:刷新后頁面沒有發生改變

      因為,每一次修改都需要重啟服務器,所以剛才的修改沒有生效,重啟服務器就可以了。

    • 為什么會自動更新聊天信息?
      原來一直在不斷地發送請求,向服務器請求數據。從關閉服務器時就可以看出來。

      通過 env 的定義消息通知量,以及 env 訂閱消息。

      在 publish 中定義了 module.exports

      在 subscribe 定義了注冊消息的步驟。

    • 聊天信息存儲?

      所有操作的核心在于 session.messages,不管是 add, save destroy 均是以這個對象為準。

    3.2.3?感受

    好厲害,這樣就實現了一個聊天室,真的在這個瀏覽器發送信息,另外一個瀏覽器就自動刷新了最新信息。好棒!

    4?部署到百度BAE

    能夠很方便地把現在開發的項目立刻部署到外網,確實是一個很吸引人的地方??蓪嶋H操作過程中,并不是那么容易。http://developer.baidu.com/

    4.1?不靠譜的個人信息注冊

    寫個人簡介,發送手機注冊,郵箱鏈接確認注冊,就成功了。

    申請了,需要等待一周的結果,所以,本來打算先本地來開發一個項目,但是有些無從下手。找到了官方文檔中的技術支持欄目,加入了 QQ 群,就發現了如下通過論壇來開通賬號部署功能的方式。

    4.2?申請 BAE3.0 公測項目

    當時筆者申請的時候,還是公測時期,現在已經不是公測了,不知道能否用這種方式來開通賬號。

    論壇開通地址位于:http://forum.cloudajs.org/forum.php?mod=viewthread&tid=16開通原則是每天下午5點左右統一開通,挺快捷的。

    4.3?部署項目

    依次參照?http://cloudajs.org/docs/upload_to_BAE_3.0?說明一步一步部署。

    我比較喜歡用 git,在創建版本庫的時候就選擇 git。

    剛開始使用的命令行來提交,但是盡管已經執行了遠程 push 的命令,但是沒有在 BAE 管理器中“發布最新版”的按鈕依然不可以??赡苁?git 命令行的命令寫錯了,如下所示,如果有讀者知道原因,請在留言中告知,謝謝。

    git push?https://git.duapp.com/appidl0tf8e104p?master

    這里是用 git 界面提交版本的詳細流程http://developer.baidu.com/wiki/index.php?title=docs/cplat/bae/start#GIT.E6.96.B9.E5.BC.8F

    4.4?不能安裝 TortoiseGit?

    無法通過 Windows Installer 服務安裝此安裝程序包。您需要安裝帶有更新版本的 Windows Installer 服務的 Windows Service Pack

    http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=8483

    下載新的更新補丁然后重啟之后再次安裝 tortoisegit 就 ok 了。

    嘿嘿,注意安裝完上面的版本后,安裝下語言包哦,不然界面是全英文的。

    4.5?用 TortoiseGit 提交出錯

    不知道是不是因為 BAE 關閉了公測的原因,反正現在是不能提交更新了。

    Total 804 (delta 52), reused 0 (delta 0)fatal: The remote end hung up unexpectedlyfatal: recursion detected in die handlererror: RPC failed; result=22, HTTP code = 411Everything up-to-date

    5?技術積累

    5.1?handlebarsjs

    handlebars 使用了模版,只要你定義一個模版,提供一個json對象,handlebars 就能吧json對象放到你定的模版中。關于詳細視圖頁面中的標簽語言介紹文檔如下:

    http://handlebarsjs.com/

    5.1.1?each

    就是將數組中的信息循環列舉出來

    <ul class="peoplelist">{{#each people}}<li>{{this}}</li>{{/each}}</ul>

    {people: ["Yehuda Katz","Alan Johnson","Charles Jolley"]}

    6?資料

    1. 百度 Clouda

    http://cloudajs.org/

    2. 論壇

    http://forum.cloudajs.org/forum.php

    3. Clouda API 文檔:doc 版本的,比上官網查看 API 更方便、好用一些

    http://download.csdn.net/detail/lvye1221/6752053

    總結

    以上是生活随笔為你收集整理的Clouda 之我见的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。