Sep 13, 2012 - node.js    No Comments

Node.js Express.js 学习笔记(2)

动态路由的匹配,假设我们有这样一根路径 /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里改成:

app.get('/user/:username', routes.username);

在./routes/index.js里添加:

exports.username = function(req, res){
	var time = new Date();
	res.render('username', {
		title: 'now and username',
		time: time,
		username: req.params.username
	});
};

在 ./views/ 文件夹下新增一个叫 username.ejs 的文本文件,代码如下:

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
	  <p>now: <%= time %></p>
	  <p>username: <%= username %></p>
  </body>
</html>

然后重新启动app.js, 访问 http://127.0.0.1:3000/user/aresli,我们可以看到:

ps: 改ejs模板是不需要重启app.js的

Got anything to say? Go ahead and leave a comment!