Webapp开发框架Clouda的使用(一)

来源:互联网 发布:如何在淘宝上寻找货源 编辑:程序博客网 时间:2024/06/05 12:44

Clouda提供的文档非常简洁易用,也因为安装简单,很快就可以让内置的测试实例itworks和HelloWorld顺利运行。下面是我根据文档进行安装Clouda时遇到的问题:

需要的node.js和MongoDB的安装启动过程省略。

Clouda在浮出水面之前,就已经在github上以sumeru的名字托管了代码,所以我的开发环境里已经有了一份早先的sumeru。在使用这份早先的sumeru创建工程时,第一遍出错,执行第二遍成功;使用'sumeru start'运行Clouda时,由于没有以后台运行的方式运行它,它把监听的信息都输出到了屏幕上,可以看到它监听两个端口:File Server Listening on xxxx和Server Listening on8082,(由于Clouda默认的8080端口已经被其他程序占用,我改了这里的File Server的默认端口,这个端口占用的问题下面再说),到这里安装过程还算顺利,但是itworks页面上貌似没有任何显示,还是重新安装最新的sumeru,虽然应该使用'npm update'更新,但使用安装命令'npm install'直接覆盖也没出现什么问题,安装完成后运行Clouda,可以看见这时它只监听了一个端口Server Listening on xxxx。

默认端口8080被占用,会导致运行Clouda时发生错误:

Error: listen EADDRINUSE

   at errnoException (net.js:776:11)

   at Server._listen2._connectionKey (net.js:917:26)

   at process.startup.processNextTick.process._tickCallback (node.js:244:9)

不想kill掉占用8080端口的进程,所以跑到了app/config下面修改sumeru.js文件,换了一个端口号,再次sumeru start运行,成功,也可以用google打开itworks或者后来写的helloworld实例了,但是这样是不够的,页面上的Welcome to sumeru!闪一下就消失了,发现chrome获取/view/itworks.html的状态并非200,并且在chrome的Console看到log.js打出的日志,最后一行出现GET http://localhost:8080/view/itworks.html出错,说明获取view/itworks.html时还是使用的默认8080端口,找到存放服务器配置文件的目录app/server_config,查看site_url.js,发现配置的是 http://localhost:8080/,基本可以确定这里配置的site_url就是获取/view/itworks.html的路径,把它改成可以正确访问/view/itworks.html的路径,这样itworks和helloworld可以正常访问了。

在整个端口修改的过程中,有一个问题需要注意:Clouda的安装目录的结构,和用Clouda创建的工程的目录结构,很大部分是重复的,比如都有app/config和app/server_config,修改app/config/sumeru.js里配置的端口号时我是在Clouda的安装目录里操作的,这样创建的每个工程都会配置这个端口号,修改app/server_config的site_url.js时则是修改各个工程里的才有效。

 

初次尝试使用Clouda,有错误或不足的地方还请指出。可以说Clouda是应运而生的,虽然Clouda还年轻,虽然只支持webkit浏览器(这点和html5很像,最适合开发移动app), 但它的出现带来了像html5一样曾带给我们的希望。除了在宣传的优良特性,Clouda有一些很吸引人的特点,比如数据到服务器和到界面的自动更新,更快的启动速度等等,下次再深入挖掘。