Express做为Nodejs最经常使用的轻量级框架,版本更新很快,2.x -> 3.x过程当中也有不少改动,这里对经常使用的,基础的API进行一次汇总,初学者能够学习,做者本人权当复习之用. html
建立一个express应用,其中express()方法返回的app其实是一个Function对象,它被设计为传给node的http server做为处理请求的回掉函数. node
var express = require('express'); var app = express(); //这里3.x版本与2.x有明显区别 app.get('/',function(req,res){ res.send("Hello world!"); }); app.listen(3000);
1. app的set()和get()一般用来存储一些服务器设置: express
app.set('name','张三'); app.get('name'); //张三
2. app.configure([env],callback);这个函数在2.x版本中还能看到,可是到了3.x官方已经不推荐使用,它的主要做用是当env和app.get('env')匹配时,也就是preocess.env.NODE_ENV,则执行callback方法..官方文档推荐你们使用if判断的方式,看代码可知: 数组
app.configure(function(){ app.set('name','xiaoshi'); }); //上面代码等价于下面代码 app.set('name','xiaoshi'); //--------------------------------- app.configure('development',function(){ app.set('name','xiaoshi'); }); //上面代码等价于下面代码 if('development' == app.get('env')){ app.set('name','xiaoshi'); }
3. app.use([paht],function); app.use不是用来处理请求,而是加载处理请求的模块的参数.一般是处理中间件,可选参数的默认值是'/'. 服务器
app.use(function(req,res,next){ res.send("hello world"); });
path路径对于function不可见,这意味着req.path是找不到值的,这么设计为了让中间件能够不须要修改代码就在任意前缀路径下执行.常见定义静态文件服务的就是如此.app.use()定义的中间件顺序会被严格执行. app
4. app.render(view,[option],callback);渲染view,callback中处理返回的渲染后的字符串.以下: 框架
app.render('email',function(err,html){ //... });
5. req.params 这是一个存放键值对形式的数组对象.好比路由/user/:name,"name"属性会在req.params.nam中,你能够经过这种方式获取值. 函数
6. req.query 这是一个通过解析的url请求参数的对象. 学习
7.req.body 这个是咱们比较常见的,由bodyParser()提供的解析过的请求体,默认是{}.看一下例子: ui
//POST请求,user[name]=xiaoshi req.body.user.name // => "xiaoshi" //POST {"name":"xiaoshi"} req.body.name // => "xiaoshi"
8. req.param(name);也是一个查询参数值的方法,对比以前相似的方式,它们优先级以下:
req.params > req.body > req.query
9. req.path 返回请求的URL路径名(不包括参数); req.host 返回主机名(不包括端口号)
10. res.redirect([status],url); 使用可选状态码,跳转url
res.redirect('http://example.com');
11. res.send([body|status],[body]); 发送一个响应,该方法做为主要的响应函数,它会自动设置Content-Length,同事设置Content-Type,除非以前已经设置过
res.set('Content-Type', 'text/html');
这里仅列出最多见,最经常使用的,更多的仍是在官方API文档上.