express学习笔记
1. 配置
1.1. 参数配置
设置参数,读取参数
app.set('title', 'My Application');
app.get('title');
下面的内建的可以改变Express行为的设置
- env 运行时环境,默认为 process.env.NODE_ENV 或者 "development"
- trust proxy 激活反向代理,默认未激活状态
- jsonp callback name 修改默认?callback=的jsonp回调的名字
- json replacer JSON replacer 替换时的回调, 默认为null
- json spaces JSON 响应的空格数量,开发环境下是2 , 生产环境是0
- case sensitive routing 路由的大小写敏感, 默认是关闭状态, "/Foo" 和"/foo" 是一样的
- strict routing 路由的严格格式, 默认情况下 "/foo" 和 "/foo/" 是被同样对待的
- view cache 模板缓存,在生产环境中是默认开启的
- view engine 模板引擎
- views 模板的目录
1.2. 加载中间件
中间件(Middleware)可以理解为一个对用户请求进行过滤和预处理的东西,它一般不会直接对客户端进行响应,而是将处理之后的结果传递下去。
compression中间件是对响应的数据进行压缩,这个咋一听起来有点奇怪,因为中间件的执行时间点是在直接处理某个url规则之前。而对响应数据进行压缩是在对某个url规则处理之后的事情。这里是通过重写res的方法来实现的。因为响应数据时,肯定是用res.write或res.end这样的方法来返回的。
插件的执行顺序及执行次数
http://www.cnblogs.com/cubika/p/3485821.html
http://ju.outofmemory.cn/entry/27549
http://express.jsbin.cn/api.html
http://expressjs.jser.us/3x_zh-cn/api.html#middleware
http://972169909-qq-com.iteye.com/blog/1796648
https://www.npmjs.org/package/compression
2. 路由
1.app.param
路由参数的处理逻辑
2.app.VERB
app.VERB() 方法为Express提供路由方法, VERB 是指某一个HTTP 动作, 比如 app.post()。 可以提供多个callbacks,这多个callbacks都将会被平等对待 ,它们的行为跟中间件一样,也有一个例外的情况,如果某一个callback执行了next('route'),它后面的callback就被忽略。这种情形会应用在当满足一个路由前缀,但是不需要处理这个路由,于是把它向后传递。
path支持字符串和正则类型
app.VERB(path, [callback...], callback)
app.all(path, [callback...], callback)
app.all('/api/*', requireAuthentication);
3.app.routes
app.routes 对象存储了所有的被HTTP verb定义路由。 这个对象可以用在一些内部功能上,比如Express不仅用它来做路由分发,同时在没有app.options()定义的情况下用它来处理默认的OPTIONS行为。 你的应用程序或者框架也可以很轻松的通过在这个对象里移除路由来达到删除路由的目的。
这个数据是只读的嘛? 应该不是吧
3.监听端口
app.listen()
4.静态变量
app.locals
应用程序本地变量会附加给所有的在这个应用程序内渲染的模板。 这是一个非常有用的模板函数,就像应用程序级数据一样。