可以参考Express官网关于路由一节:http://expressjs.com/guide/routing.html

1:通过使用GET、POST方式定义主页路由,app.js:

var express = require('express');
var app = express(); app.get('/', function(req,res){
res.send('欢迎来到Express首页');
});
app.post('/', function(req,res){
res.send('Welcome to Express Index.');
});

2:路由路径以及参数定义

var express = require('express');
var app = express(); app.get('/users', function(req,res){
res.send('获取用户列表');
});
app.get('/users/:id', function(req,res){
res.send('user id:'+req.params.id);
});

浏览器中输入:http://127.0.0.1:3000/users/,http://127.0.0.1:3000/users/111

3:正则路由,值匹配方式与正则表达式一致,例如:

var express = require('express');
var app = express(); app.get('/ho?l', function(req,res){
res.send('hl,hol');
});
app.get('/ho+l', function(req,res){
res.send('hol,hool,hooool,and so on');
});
app.get('/ho*l', function(req,res){
res.send('hol,holl,hoal,ho1000l,and so on');
});
app.get('/ho(ab)?l', function(req,res){
res.send('hol,habl');
});

4:Route Handler:next()

var express = require('express');
var app = express(); app.get('/a/b', function(req,res,next){
console.log('response will be send by the next function...');
next();
},function(req,res){
res.send('/a/b');
});

注意在next()所在的路由中,不能有输出,要在最后的处理函数中输出,否则后台会输出以下错误内容:

Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (http.js::)
at ServerResponse.header (/home/y/my_note/nodejs/myapp/node_modules/express/lib/response.js::)
at ServerResponse.send (/home/y/my_note/nodejs/myapp/node_modules/express/lib/response.js::)
at fn (/home/y/my_note/nodejs/myapp/node_modules/express/lib/response.js::)
at View.exports.renderFile [as engine] (/home/y/my_note/nodejs/myapp/node_modules/jade/lib/jade.js::)
at View.render (/home/y/my_note/nodejs/myapp/node_modules/express/lib/view.js::)
at Function.app.render (/home/y/my_note/nodejs/myapp/node_modules/express/lib/application.js::)
at ServerResponse.res.render (/home/y/my_note/nodejs/myapp/node_modules/express/lib/response.js::)
at module.exports (/home/y/my_note/nodejs/myapp/app.js::)
at Layer.handle_error (/home/y/my_note/nodejs/myapp/node_modules/express/lib/router/layer.js::)

5:Response Methods

Method Description
res.download() Prompt a file to be downloaded.
res.end() End the response process.
res.json() Send a JSON response.
res.jsonp() Send a JSON response with JSONP support.
res.redirect() Redirect a request.
res.render() Render a view template.
res.send() Send a response of various types.
res.sendFile Send a file as an octet stream.
res.sendStatus() Set the response status code and send its string representation as the response body.

6:app.route()

app.route('/book')
.get(function(req,res){
res.send('get a book');
})
.post(function(req,res){
res.send('add a book');
})
.put(function(req,res){
res.send('update the book');
});

7:Express.Router

app.js

var routes = require('./routes/index');
var users = require('./routes/users');

// view engine setup
  app.set('views', path.join(__dirname, 'views'));
  app.set('view engine', 'jade');


app.use('/', routes);
app.use('/users', users);
index.js
var express = require('express');
var router = express.Router(); /* GET home page. */
router.get('/', function(req, res) {
res.render('index', { title: 'Express!' });
}); module.exports = router;

最新文章

  1. java 的 linq,不要再写令人讨厌的 for 了!
  2. codevs哈希水题
  3. 博文推荐】Javascript中bind、call、apply函数用法
  4. 开发中可能会用到的几个 jQuery 小提示和技巧(转)
  5. fawef
  6. hdu 2955 Robberies
  7. Constants in C++
  8. 【转】 IOS,objective_C中用@interface和 @property 方式声明变量的区别
  9. UIScreen类
  10. C++----练习--整型赋值时的溢出
  11. Ext 怎么发ajax请求
  12. skynet newservice API参考
  13. android 应用静默自启动的解决方法
  14. css3的学习
  15. gitlab 10汉化
  16. PYTHON-模块 sys os random shutil
  17. 【转】 g++编译时对'xxxx'未定义的引用问题(undefined reference to)
  18. 7 -- Spring的基本用法 -- 10... 获取其他Bean的属性值;获取Field值;获取任意方法的返回值
  19. poj_2709 贪心算法
  20. windows 3389 远程

热门文章

  1. Templates 模板:
  2. 【HDOJ】4541 Ten Googol
  3. centos6.5+Django+mysql+nginx+uwsgi
  4. COJ 0034 动态的数字三角形
  5. HDU_2136——最大质因数,素数筛选法
  6. 浏览器开发 IE webkit chrome浏览器定制
  7. uva 10714 Ants(贪心)
  8. SQL - 配置SQLServer 使其可以远程访问
  9. 手游架构-REST架构
  10. linux安装mysql5.1.56