用node.js建博客(一) - node.js安装及Express框架简介
2016-07-29 00:00
696 查看
最近写博客频率有写频繁,很多时候像展示一些代码,不过javaeye好像不支持代码展示的功能. so... 催生了自己建个博客的想法.
之前也有考虑国 WordPress没, 不过还是感觉自己做一个比较有成就感.
关于采用markdown语法来写博客的想法,是从4月份shanghaiOnRails活动上得来的, 会上有个兄弟分享了用markdown语法创建静态博客的方法. 当时不太懂, 不过今天研究了研究,发现这个方式very cool.
ok` wordpress可以买php空间, 那自己写个博客app,架哪里? 是否有免费空间?
关于这个问题,需要感谢cxh116的这个帖子:《折腾Ruby or Java or Node.js没主机的可以玩Cloudfoundry》
有支持node.js的空间,并且for free!!! 这个让我眼前一亮, 虽然heroku可以部署rails, 但是感觉node.js这个新奇的技术更吸引我,今天打算采用node.js搭建一个基于markdown语法的博客:
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等大多数语言。
我用的是homebrew, 当让用macport也可以
3. Windows:
建议搞个linux虚拟机. 今天没win环境,改天去公司试试Win XP环境
curl http://npmjs.org/install.sh | sh
安装完成后
$ npm -v
看看是否安装成功
$ npm install -g express
$ epxress -v #看看是否安装成功
$ cd nodeblog
Express 目录结构 t-1
$ node app.js
访问http://localhost:3000/
我们看看app.js文件:
下面代码将url渲染到 index.jade文件, 并且传递title参数:
其中传递变量title, 在views/layout.jade文件中有定义, 我们这里将title改成"Node Blog":
修改后效果如下所示:
到这里, Express 入门介绍就到这里,进一步内容需要看参考资料中的相关文档
https://github.com/visionmedia/jade
《Express中文入门手册》
《markdown语法说明》
《google-code-prettify使用说明》
《使用node.js, markdownjs, prettify.js打造个人写作平台》
《将node.js应用上传到vmc平台》, 这是我前两天写的一篇, 关于如何将应用上传到vmc服务器,后面篇幅不会再做介绍。
P.S:
我勒个去的!! 还没写完呢就发布草稿了! 我只是想暂时存一下。
这样也好,把文章切分成多个主题来写。
本文的代码以添加到附件中:
nodeblog.zip
之前也有考虑国 WordPress没, 不过还是感觉自己做一个比较有成就感.
关于采用markdown语法来写博客的想法,是从4月份shanghaiOnRails活动上得来的, 会上有个兄弟分享了用markdown语法创建静态博客的方法. 当时不太懂, 不过今天研究了研究,发现这个方式very cool.
ok` wordpress可以买php空间, 那自己写个博客app,架哪里? 是否有免费空间?
关于这个问题,需要感谢cxh116的这个帖子:《折腾Ruby or Java or Node.js没主机的可以玩Cloudfoundry》
有支持node.js的空间,并且for free!!! 这个让我眼前一亮, 虽然heroku可以部署rails, 但是感觉node.js这个新奇的技术更吸引我,今天打算采用node.js搭建一个基于markdown语法的博客:
1. 技术准备:
node.js 写本文的时候我采用的版本是0.4.5, Win用户需要自行编译node.exenpm 类似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目录结构
目录/文件 | 说明 |
./ | 根目录,我们的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
访问http://localhost:3000/
我们看看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 入门介绍就到这里,进一步内容需要看参考资料中的相关文档
4. 参考资料:
jade GitHub仓库:https://github.com/visionmedia/jade
《Express中文入门手册》
《markdown语法说明》
《google-code-prettify使用说明》
《使用node.js, markdownjs, prettify.js打造个人写作平台》
《将node.js应用上传到vmc平台》, 这是我前两天写的一篇, 关于如何将应用上传到vmc服务器,后面篇幅不会再做介绍。
P.S:
我勒个去的!! 还没写完呢就发布草稿了! 我只是想暂时存一下。
这样也好,把文章切分成多个主题来写。
本文的代码以添加到附件中:
nodeblog.zip
本系列其他文章:
从文件上传开始, 进入node.js的世界
将使用npm管理的node.js项目部署到vCloudLabs
用node.js建博客(一) - node.js安装及Express框架简介
用node.js建博客(二) - 构建第一个markdown页面
用node.js建博客(三) - 用markdown写静态博客
用node.js建博客(四) - express中的404处理
用node.js建博客(五) - 用vows以BDD方式测试程序
相关文章推荐
- VMC部署管理:关于无缝升级
- 使用 HTTP 上传 G 级的文件之 Node.js 版本
- mongo实现消息队列
- Node.js压缩web项目中的js,css和图片
- node连接mysql数据库
- 使用 Node.js 构建交互式命令行工具
- 纪念blog发文100篇
- async.js 学习记录
- 异步流程控制:7 行代码学会 co 模块
- 新时代编辑神器:Atom
- rem : web app适配的秘密武器
- jquery高级应用之Deferred对象
- ndm:NPM 的桌面 GUI 程序
- 博客备份工具 Blog Backup v0.6.1 下载
- 使用Google工具栏追踪 Blog 留言
- node.js中的fs.mkdir方法使用说明
- 为什么Node.js会这么火呢?Node.js流行的原因
- 究竟什么是Node.js?Node.js有什么好处?
- Linux下为Node.js程序配置MySQL或Oracle数据库的方法
- 三种Node.js写文件的方式