新版nodejs express 和ejs应用案例

2013-07-11 00:00:00 by 【6yang】, 1808 visits, 收藏 | 返回
最近在学nodejs express jade 发现jade 真不好用,谁会用这个模板来做网站,Jade语法虽然看上去很简洁,但做前端开发的。可不想因为它的好看而去使用。毕竟公共性不多,于是在网上找案例,大部份用ejs还是挺多的。


介绍下:
Node.js是一个可以快速构建网络服务及应用的平台。该平台的构建是基于Chrome's JavaScript runtime,也就是说,实际上它是对GoogleV8引擎进行了封装。
 
 
这是百科上的解释,基本很正确,于是,你要问了,它跟客户端的JS有什么区别呢?答案是几乎没啥区别,所以只要你会写JS,nodejs上手就 很容易了,这不是一遍对nodejs解释的文章,所以我们直接进入正题,首先,我们安装虚拟机ubuntu,这个是linux的图形系统,为什么要装它 呢,因为面试的人问了,你会用linux吗?所以为了会这玩意儿,我们还是装吧!然后我们从nodejs官网上下载安装nodejs,或者在终端安装:
 
[ruby] 
a.安装依赖包:50-100kb/s大概每个包一分钟就能下载安装完成  
  
 sudo apt-get install g++ curl libssl-dev apache2-utils   
 sudo apt-get install git-core  
b.在终端一步步运行一下命令:  
  
 git clone git://github.com/joyent/node.git     
 cd node  
 ./configure  
 make     
 sudo make install  
 
接着我们安装express:
 
[python]  
npm install express  
 
为啥要装它呢,其实你不装也是可以的,只是没那么方便罢,express也是个工具包,它集成了一个路由模板之类的方法。说到模板,我在这里选用的是ejs,好像express自带了jade,但我觉得ejs和asp.net很像,所以还是选ejs吧,大多数html是不变的。
 
[ruby] 
npm install ejs  
 
然后我们直接来配置package.json文件,指定模板为ejs
 
[ruby]  
{  
  "name": "application-name",  
  "version": "0.0.1",  
  "private": true,  
  "scripts": {  
    "start": "node app"  
  },  
  "dependencies": {  
    "express": "3.1.0",  
    "ejs": "*"  
  }  
}  
 
然后我们给app.js里配置我们需要路由的文件,关于app.js里的说明要较为复杂,所以我建议不用理会其他,对着下面的做就行了。
 

/**
 * Module dependencies.
 */

var express = require('express')
  , routes = require('./routes')
  , user = require('./routes/user')
  , http = require('http')
  , path = require('path');
var ejs = require('ejs');

var app = express();

// all environments
//app.configure(function(){    
app.set('view options', {layout:false});
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.engine('.html', ejs.__express);
app.set('view engine', 'html');// app.set('view engine', 'ejs');
// 这里是关键
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
//});
// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

app.get('/', routes.index);
//app.get('/users', user.list);
app.get("/test.html", function(req, res){  
    res.render('test', { title: 'Demo实例 javascript 6yang官方网站 Nodejs版' });  
});  


http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});
 
做完这些,我们还需要在view文件夹里建一些模板文件,对应这里的get里的router,然后我们本地测试
 
[ruby]  
node app.js  
目前来说,一切都很顺利,如果你不顺利的话就百度吧,当然我会在文章的结尾推荐一些相关的文章的,做了nodejs该如何发布到网上呢?没服务器?买啊。没钱?用免费的啊。百度出来用cloudfoundry可以免费测试nodejs.
 
先去cloudfoundry的官网 上申请一个账号,然后激活它。安装vmc
 
[ruby]  
sudo apt-get install ruby-full rubygems                   ///这是安装ruby的方法  
sudo gem install vmc  
 
用vmc命令登录cloudfoundry并创建一个app
 
[ruby]  
vcm login             //会有提示输入邮箱和密码的  
vcm push            //会提示你新建一个app的,按照提示走下去就行了  
 
这样用vcm info就可以看到你建的app的状态了,如下图:
 
 
这里遇到一个问题就是新建的app会是stopped的状态,这时你可以用命令把它开启才能用.
 
最后我们还是用vmc push把刚才做的内容发布到网上了,如下图:
 
好,一切成功后,我们就可以输入网址 http://jsjy.cloudfoundry.com 访问了.如下图:
到此,就一切都完成了,冒似也就这样吧,so easy,妈妈再也不用担心你的工作了。
部份来自:http://blog.fens.me/nodejs-express3/
分享到:
share

    图片原图

    loading

    loading