使用js服务端语言nodejs和express建个人站点

标签: js 服务 语言 | 发表时间:2013-03-08 09:42 | 作者:yoooyeeey
出处:http://blog.csdn.net

使用js服务端语言nodejs和express建个人站点

作者:田想兵 个人网址: http://www.lovewebgames.com

今天主题很沉重,因为听说京城又在开会,房价上涨,物价也在涨,还有西湖边上的小松鼠被游客踩死了。所以说点不开心的事让大伙开心一下,记得一个月前,公司破产,为了生计,我不得不再次投入到找工作的大军中,在杭州,可能做IT行业的技工,都想进阿里淘宝这家杭州标志性的企业,我也不例外,于是投了一份资深前端职位的简历。结果不幸被淘汰了,虽然后来有外包进去淘宝的机会,也在入职的前一天决然离去,进了一家创业型的小公司。每次面试总能找到自己的不足,结合这几次,我发现我对业界新技术的追赶脚步太慢了。因为面试官问我nodejs的时候,我竟然不知为何物,我以为是loadjs,哈,无知啊。于是呼,这几日闲来学习这个对我来说很新的技术。 有什么疑问可以加Q群5678537

Node.js是一个可以快速构建网络服务及应用的平台。该平台的构建是基于Chrome's JavaScript runtime,也就是说,实际上它是对GoogleV8引擎进行了封装。


这是百科上的解释,基本很正确,于是,你要问了,它跟客户端的JS有什么区别呢?答案是几乎没啥区别,所以只要你会写JS,nodejs上手就很容易了,这不是一遍对nodejs解释的文章,所以我们直接进入正题,首先,我们安装虚拟机ubuntu,这个是linux的图形系统,为什么要装它呢,因为面试的人问了,你会用linux吗?所以为了会这玩意儿,我们还是装吧!然后我们从 nodejs官网上下载安装nodejs,或者在终端安装:

 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:

npm install express

为啥要装它呢,其实你不装也是可以的,只是没那么方便罢,express也是个工具包,它集成了一个路由模板之类的方法。说到模板,我在这里选用的是ejs,好像express自带了jade,但我觉得ejs和asp.net很像,所以还是选ejs吧,大多数html是不变的。

npm install ejs

然后我们直接来配置package.json文件,指定模板为ejs

{
  "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 partials =require('express-partials');

var app = express();

app.configure(function(){
  app.set('port', process.env.VMC_APP_PORT || 3000);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'ejs');
  //app.use(partials())
  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')));
});

app.configure('development', function(){
  app.use(express.errorHandler());
});

app.get('/', routes.index);
app.get("/demo.html", function(req, res){
	res.render('demo', { title: 'Demo实例 javascript JY官方网站 Nodejs版' });
});
app.get("/games.html", function(req, res){
	res.render('games', { title: 'JY游戏 javascript JY官方网站 Nodejs版' });
});
app.get("/job.htm", function(req, res){
	res.render('job', { title: '田想兵个人简历' });
});
//app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});
做完这些,我们还需要在view文件夹里建一些模板文件,对应这里的get里的router,然后我们本地测试

node app.js

目前来说,一切都很顺利,如果你不顺利的话就百度吧,当然我会在文章的结尾推荐一些相关的文章的,做了nodejs该如何发布到网上呢?没服务器?买啊。没钱?用免费的啊。百度出来用cloudfoundry可以免费测试nodejs.

先去 cloudfoundry的官网 上申请一个账号,然后激活它。安装vmc

sudo apt-get install ruby-full rubygems                   ///这是安装ruby的方法
sudo gem install vmc

用vmc命令登录cloudfoundry并创建一个app

vcm login             //会有提示输入邮箱和密码的
vcm push            //会提示你新建一个app的,按照提示走下去就行了

这样用vcm info就可以看到你建的app的状态了,如下图:


这里遇到一个问题就是新建的app会是stopped的状态,这时你可以用命令把它开启才能用.

最后我们还是用vmc push把刚才做的内容发布到网上了,如下图:


好,一切成功后,我们就可以输入网址 http:// jsjy.cloudfoundry.com 访问了.如下图:

到此,就一切都完成了,冒似也就这样吧,so easy,妈妈再也不用担心你的工作了。

最后推荐大家看这几篇相关的文章吧:

首先是大师的 nodejs入门http://www.nodebeginner.org/index-zh-cn.html ,是难得的中文教材。看完后,就算入门了。

被误解的 Node.js ,ibm出品,必属精品。中文不解释.

如果您还有什么疑问的话,可以加Q群5678537




作者:yoooyeeey 发表于2013-3-8 9:42:49 原文链接
阅读:78 评论:0 查看评论

相关 [js 服务 语言] 推荐:

使用js服务端语言nodejs和express建个人站点

- - CSDN博客Web前端推荐文章
使用js服务端语言nodejs和express建个人站点. 作者:田想兵 个人网址: http://www.lovewebgames.com. 今天主题很沉重,因为听说京城又在开会,房价上涨,物价也在涨,还有西湖边上的小松鼠被游客踩死了. 所以说点不开心的事让大伙开心一下,记得一个月前,公司破产,为了生计,我不得不再次投入到找工作的大军中,在杭州,可能做IT行业的技工,都想进阿里淘宝这家杭州标志性的企业,我也不例外,于是投了一份资深前端职位的简历.

JSON发明者,《JS语言精粹》作者Douglas确认QCon北京演讲内容

- - InfoQ cn
春节将至,当大家忙于总结,忙于年会,忙于展望2013的时候,QCon北京已确认的国际讲师们没有因为中国农历新年而停歇:. Jesse Newland,这位排查12306订票插件拖垮GitHub服务故障的资深运维工程师,确认了他的演讲话题. 他将在主题演讲中与大家分享GitHub的ChatOps运维机器人:.

thrift总结 - 跨语言服务开发

- - 企业架构 - ITeye博客
IBM-Apache Thrift - 可伸缩的跨语言服务开发框架. Thrift入门及Java实例演示. Thrift是一个软件框架,用来进行 可扩展且跨语言的服务的开发. thrift允许你定义一个简单的定义文件中的数据类型和服务接口. 以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言.

WebView JS 交互

- - ITeye博客
WebView加jquery做页面会怎么样呢. // 创建WebView对象. // 把programList添加到js的全局对象window中,. // 这样就可以使用window.programList来获取数据. * 定义js回调java函数. // 绑定键盘的向上,向下按钮事件触发相应的js事件.

JS游戏引擎

- 米随随 - HTML5研究小组
If you don’t have anything better to do and want to help fellow redditors interested in JS game dev out, feel free to fork the list and modify it as you like.

來源請求.js

- 红烧鲤鱼 - Blog: timdream
很早以前就想講了,但講了大概又會被戰. 相較於英文維基百科,中文維基百科在社會和歷史條目充滿了 systemic bias. 但是那些主觀論述又不是編輯者有意加進去的,而是某種編輯者存在的社會所給予的暗示(Inception?)與集體共識,而不是原本百科全書應該有的可驗證的事實. 因為是暗示又是共識,所以有自覺的百科編輯者反而是少數;中文維基只好長成現在這個樣子了.

Js删除节点

- - JavaScript - Web前端 - ITeye博客
 方式一:传this参数调用方法:.  方式二:js方法中通过选择器获取节点:. //此处删除的是a节点 }. 方式三:通过jQuery方式获取节点:(尚未测试,有待测试. 此处a标签传this到js中,js通过this(即a节点)取parent(即p节点). (1)p.remove();可直接删除整个p节点.

Apache Thrift - 可伸缩的跨语言服务开发框架

- - 开源软件 - ITeye博客
转载自:http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/. 简介: Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的远程服务调用的框架. 本文将从 Java 开发人员角度详细介绍 Apache Thrift 的架构、开发和部署,并且针对不同的传输协议和服务类型给出相应的 Java 实例,同时详细介绍 Thrift 异步客户端的实现,最后提出使用 Thrift 需要注意的事项.

JS游戏引擎列表

- sku - 酷壳 - CoolShell.cn
这里有一个网址收集了关于JS游戏引擎开发库的一个列表,转过来. 关于使用JS和HTML5做的一些小游戏,可参见《HTML5 小游戏展示》. Name Latest Release License Type Notes The Render Engine 1.5.3 MIT 跨浏览器; 大规模 API; 开源. 2 gameQuery 0.5.1 CC BY-SA 2.5 和 jQuery 一起使用 gTile 0.0.1 Tile based.

Deck JS: HTML5 幻灯片

- L - LinuxTOY
Deck.js 是一组开源的 JavaScript 类库,方便使用现代的 HTML5/CSS3/JS 技术创建幻灯片. 该软件十分适用于开源项目介绍,交互式的方式比单纯的文字说明更简洁易懂. 不废话了,赶紧前往该项目主页去体验 HTML5 时代的幻灯片吧. 分类: Productivity |. 收藏到 del.icio.us |.