Node.js Express.js 学习笔记(3)
在Express.js 2.x的版本中一直存在着一个叫layout.ejs的页面布局模板,他的基本代码如下:
<!DOCTYPE html> <html> <head> <title><%= title %></title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <%- body %> </body> </html>
在Express.js 2.x的版本中一直存在着一个叫layout.ejs的页面布局模板,他的基本代码如下:
<!DOCTYPE html> <html> <head> <title><%= title %></title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <%- body %> </body> </html>
动态路由的匹配,假设我们有这样一根路径 /user/[username], 每次输入的username都不一样,我们要在页面上打出不同的用户名。
在app.js添加以下代码:
app.get('/user/:username', function(req,res){ res.send('username: ' + req.params.username); });
启动app.js, 访问 http://127.0.0.1:3000/user/aresli,
可以看到页面上出现了 username: aresli
这样的代码明显耦合度太高,不便于维护。也没有用到模板。一看就是屌丝代码。把这段代码改成高帅富专用的模板引擎。
app.js里改成:
Read more »
先来看一下生成的app.js的代码,这是项目的入口:
/** * Module dependencies. */ var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path'); var app = express(); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('your secret here')); app.use(express.session()); app.use(app.router); app.use(require('stylus').middleware(__dirname + '/public')); app.use(express.static(path.join(__dirname, 'public'))); }); app.configure('development', function(){ app.use(express.errorHandler()); }); app.get('/', routes.index); app.get('/users', user.list); http.createServer(app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); });
Express作为Node.js官方唯一推荐的一个Web开发框架, 是我们一定要掌握的。
快速安装到global目录:
$ sudo npm install -g express