1. 技术准备:
- node.js 写本文的时候我采用的版本是0.4.5, Win用户需要自行编译node.exe
- npm 类似Ruby中的RubyGems, node.js包依赖管理工具
- express 类似Ruby中的Sinatra, 一个简单的Web框架
- markdown.js node.js中的markdown解析器, 什么是markdown?? 用过GitHub的朋友应该知道,readme.md文件
- prettify.js google-code-prettify, 提供在线的语法高亮支持,支持语法包括C-like, Java, Python, shell等大多数语言。
2. 安装node.js
这里mac os比较有福,直接使用HomeBrew包管理工具就ok:
1. Mac OS:
$ brew install node
我用的是homebrew, 当让用macport也可以
2. Ubuntu:
用虚拟机装了一个 ubunt 10.04LTS, apt-get 装node有点问题, 版本好像还是 0.3。 看来最好的方式还是通过源码安装. 今天网络不行,改天补上.
3. Windows:
建议搞个linux虚拟机. 今天没win环境,改天去公司试试Win XP环境
3. 安装 npm
1. Unix/Linux:
$
curl http://npmjs.org/install.sh | sh
安装完成后
$ npm -v
看看是否安装成功
2. Windows:
代补充
4. node的express框架
如果你用过Ruby的Sinatra.rb, 会觉得Express非常熟悉。Express作者是参考sinatra, 写了一个基于node.js的实现。
1. 安装
由于这个有点特殊,需要为npm添加-g参数, 刚开始安装的时候没有加,导致不能使用epress 命令行参数
$ npm install -g express
$ epxress -v #看看是否安装成功
2. 创建一个express项目看看
$ express nodeblog
$ cd nodeblog
3. express目录结构
Express 目录结构 t-1目录/文件 | 说明 |
./ | 根目录,我们的node.js代码都会方这个目录 |
package.json | npm依赖配置文件, 类似ruby中的Gemfile, java Maven中的pom.xml文件. 一会需要在这里添加 markdown-js 项目依赖 |
app.js | 项目的入口文件 |
public/ javascript/ stylesheets/ images/ | 存放静态资源文件, jquery/prettify.js等静态库会方这里,当然自己编写的前端代码也可以放这里 |
views/ | 模板文件, express默认采用jade, 当然,你也可以使用自己喜欢的haml,JES, coffeeKup, jQueryTemplate等模板引擎 |
node_modules/ | 存放npm安装到本地依赖包,依赖包在package.json文件中声明,使用npm install指令安装 |
4. 运行程序看看
$ npm install
$ node app.js
我们看看app.js文件:
- var express = require('express');
- var app = module.exports = express.createServer();
- // Express 程序配置
- app.configure(function(){
- app.set('views', __dirname + '/views');
- app.set('view engine', 'jade');
- app.use(express.bodyParser());
- app.use(express.methodOverride());
- app.use(app.router);
- app.use(express.static(__dirname + '/public'));
- });
- // url路由
- app.get('/', function(req, res){
- res.render('index', {
- title: 'Express'
- });
- });
- app.listen(3000);
下面代码将url渲染到 index.jade文件, 并且传递title参数:
- app.get('/', function(req, res){
- res.render('index', {
- title: 'Express'
- });
- });
其中传递变量title, 在views/layout.jade文件中有定义, 我们这里将title改成"Node Blog":
- app.get('/', function(req, res){
- res.render('index', {
- title: 'Node Blog'
- });
- });
修改后效果如下所示:
到这里, Express 入门介绍就到这里,进一步内容需要看参考资料中的相关文档