用node.js建博客(一) - node.js安装及Express框架简介

技术准备:

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等大多数语言。

安装Nodejs

可以参考我的这篇文章:http://www.gowhich.com/blog/40

安装 npm

1). Unix/Linux:

1
$ curl http://npmjs.org/install.sh | sh

安装完成后

1
$ npm -v

看看是否安装成功

2). Windows:

待补充

Nodejs的express框架

如果你用过Ruby的Sinatra.rb, 会觉得Express非常熟悉。Express作者是参考sinatra, 写了一个基于node.js的实现。

  1. 安装

由于这个有点特殊,需要为npm添加-g参数, 刚开始安装的时候没有加,导致不能使用epress 命令行参数

1
2
$ npm install -g express
$ epxress -v #看看是否安装成功
  1. 创建一个express项目看看
1
2
$ express nodeblog
$ cd nodeblog
  1. express目录结构

Express 目录结构

1
2
3
4
5
6
7
8
9
10
11
12
目录/文件             说明
./ 根目录,我们的node.js代码都会方这个目录
package.json npm依赖配置文件, 类似ruby中的Gemfile, java Maven中的pom.xml文件.
一会需要在这里添加 markdownjs-js 项目依赖
app.js 项目的入口文件
public/
javascript/
stylesheets/
images/ 存放静态资源文件, jquery/prettify.js等静态库会方这里,当然自己编写的前端代码也可以放这里
views/ 模板文件, express默认采用jade, 当然,你也可以使用自己喜欢的haml,JES, coffeeKup,
jQueryTemplate等模板引擎
node_modules/ 存放npm安装到本地依赖包,依赖包在package.json文件中声明,使用npm install指令安装
  1. 运行程序看看
1
2
$ npm install
$ node app.js

访问http://localhost:3000/

我们看看app.js文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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参数:

1
2
3
4
5
app.get('/', function(req, res){  
res.render('index', {
title: 'Express'
});
});

其中传递变量title, 在views/layout.jade文件中有定义, 我们这里将title改成”Node Blog”:

1
2
3
4
5
app.get('/', function(req, res){ 
res.render('index', {
title: 'Node Blog'
});
});

修改后效果如下所示:

到这里, Express 入门介绍就到这里,进一步内容需要看参考资料中的相关文档

参考资料:

jade GitHub仓库: https://github.com/visionmedia/jade

《Express中文入门手册》

《markdown语法说明》

《google-code-prettify使用说明》

《使用node.js, markdownjs, prettify.js打造个人写作平台》

《将node.js应用上传到vmc平台》, 这是我前两天写的一篇, 关于如何将应用上传到vmc服务器,后面篇幅不会再做介绍。

http://witcheryne.iteye.com/blog/1165067