express的基本配置项

express自动生成的app.js中有一段代码用app.setapp.use对express进行配置,但这些配置都是什么意思,以及都能作哪些配置并无展开。这一节就专门来说express的配置。上节已经介绍了几个设置,接下来先介绍剩下的几个:node

app.use(express.favicon()); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('your secret here')); app.use(express.session()); app.use(app.router);

express.favicon(iconPath):用来设置网站的图标,参数为图标的路径。若是不指明,则用默认的express图标。能够修改成:git

app.use(express.favicon(path.join(__dirname, '../public/img/favicon.ico')))

express.bodyParser(): 对请求内容进行解析,支持json、 application/x-www-form-urlencoded、multipart/form-data 格式数据的解析。也就是说ajax和form发送请求时,都会通过它的处理,方便在req中获取相应的请求值。在express中处理文件上传也是用它,能够给出参数指明上传文件存放的路径,好比:github

app.use(express.bodyParser({uploadDir:'./uploads'}))

express.methodOverride():为了支持put、delete等HTTP方法,不过要客户端配合,包含相应的_method参数,好比:ajax

<form action='/users/1'> ... <input type="hidden" name="_method" value="put" /> </form>

能够对应到:数据库

app.put('/users/:id', users.put)

app.use(express.cookieParser('your secret here'));app.use(express.session());:是为了支持session,在这样的设置中,session会被加密保存在客户端的cookie,但这样程序重启后session就不起做用了,不过express.session支持session的持久化保存,由于express用的最多的数据库就是mongo,因此下面给出用mongo保存session的配置。首先要在package.json里加上依赖项connect-mongoexpress

"connect-mongo": "0.3.3"

而后在config/express.coffee中引入connect-mongo,并修改express.session的设置:json

mongoStore = require('connect-mongo')(express) app.use express.session secret: '1234567890' store: new mongoStore url: config.db, collection : 'sessions'

app.routerconnect router的增强版,用来处理app.getapp.post等请求处理设置,在浏览器访问这些设置中对应的url时,express.router会调用相应的function。若是不显式调用app.use(app.router),express会在第一次碰到app.get(...)之类的设置时隐含调用,因此这个能够不用出如今配置项里,但.use的顺序很关键,因此显式调用比较好。好比在use中出现app.use(express.static(path.join(__dirname, 'public')));时,若是router没有出现,或被放在了它后面,那服务器每次遇到请求就会到硬盘上找有没有对应的静态文件,会形成性能降低。浏览器

这些是express最基本的配置项,其余经常使用的配置项,好比压缩、数据校验、认证和受权等均可以放在这里,下节继续介绍。服务器

转载自:图灵社区cookie

相关文章
相关标签/搜索