Node与Express开发:1 2 3 4 章

电子书:http://download.csdn.net/download/qfire/10232839

代码:https://github.com/EthanRBrown/web-development-with-node-and-express

第一章 初始Express

    多页和混合的Web程序

    Express是在Sinatra的启发下创建的。

    Node的搭建和配置非常容易,但要让它在的生产环境中发挥出最优性能,进行调优也绝非易事,只不过是配置选项更简单,也更直接了。

    IIS和Apache确实强大,并且它们的设计目标也是要榨取如今强大的硬件设施的最后一点性能。但那是需要付出代价的,即它需要相当专业的设置和调优才能榨取那种性能。

    Node的生态系统

    授权:Node中常见的是MIT授权,允许把开发包放到闭源的软件中。其他授权,如GPL(你的项目必须也是GPL),Apache 2.0(需要对授权的组件做出声明)、BSD(需声明组件)

第二章 从Node开始

    获取Node

    用Node实现的简单Web服务器

第三章 省时省力的Express

    脚手架:express借鉴RoR的做法,提供了一个生成脚手架的工具。HTML5 http://html5boilerplate.com/ 

    旅行社网站

    $ npm init

    $ npm install  express --save

    $ subl meadowlark.js

    $ node meadowlark.js   推荐安装显示HTTP请求状态码和所有重定向的浏览器插件。Chrome中有Ayima的Redirect Path特别好用。

    注意:路由和中间件的添加顺序至关重要。Express能根据回调函数中参数的个数区分404和500处理器。

var express = require('express');
var app = express();
//设置handlebars视图引擎
var handlebars = require('express3-handlebars')
   .create({ defaultLayout: 'main' });
app.engine('handlebars', handlebars.engine);
app.set('view engine', 'handlebars');
//指定端口
app.set('port', process.env.PORT || 3000);
//静态资源中间件,创建路由,渲染文件并发送给客户端
app.use(express.static(__dirname + '/public'));
//增加路由 app.VERB帮我们做了很多工作:默认忽略大小写或\
app.get('/', function(req, res) {
	res.render('home');
});
var fortunes = [
    "Conquer your fears or they will conquer you.",
    "Rivers need springs.",
    "Do not fear what you don't know.",
    "You will have a pleasant surprise.",
    "Whenever possible, keep it simple.",
];
app.get('/about', function(req, res) {
	var randomFortune = fortunes[Math.floor(Math.random()*fortunes.length)];
	res.render('about', { fortunes: randomFortune });
});
//定制404页面。app.use是添加中间件的一种方法.
app.use(function(req, res) {
	res.status(404);
	res.end('404 - Not Found');
});
//定制500页面
app.use(function(err, req, res, next) {
	console.error(err.stack);
	res.status(500);
	res.send('500 - Server Error');
});


app.listen(app.get('port'), function() {
	console.log('Express started on http://localhost:' +
		app.get('port') + '; press Ctrl-C to terminate.');
});
      视图与布局:这里使用Handlebars框架,它不会对HTML进行抽象。

     $ npm install --save express3-handlebars
     $ mkdir views/layouts -p

     $ subl views/layouts/main.handlebars

<!doctype html>
<html>
<head>
  <titleMeadowlark Travel</title>
</head>
<body>
  <header><img src="/img/logo.png" alt="Meadowlark Traval Logo"></header>
  {{{body}}}
</body>
</html>

      $ subl views/home.handlebars

<h1>Welcome to Meadowlark Traval</h1>

      $ subl views/about.handlebars

<h1>About Meadowlark Traval</h1>
<p>Your fortune for the day:</p>
<blockquote>{{fortunes}}</blockquote>

      $ subl views/404.handlebars

<h1>404 - Not Found</h1>

      $ subl views/500.handlebars

<h1>500 - Server Error</h1>

      视图和静态文件:Express靠中间件处理静态文件和视图。static中间件可以将一个或多个目录指派为包含静态资源的目录,其中的资源不经过任何特殊处理直接发送到客户端。你可以在其中放图片、CSS文件、客户端JS文件之类的资源。

      $ mkdir public/img/logo.png

      视图中的动态内容:视图真正的强大之处在于它可以包含动态信息。在about页面中添加fortunes变量

      http://localhost:3000/about


第四章 工具

    版本控制:git

   $ git init

   $ subl .gitignore

node_modules
*~
.DS_Store
   $ git add -A    
   $ git commit -m "Initial commit."
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值