express的基本配置項


express自動生成的app.js中有一段代碼用app.setapp.use對express進行配置,但這些配置都是什么意思,以及都能做哪些配置並沒有展開。這一節就專門來講express的配置。上節已經介紹了幾個設置,接下來先介紹剩下的幾個:

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圖標。可以修改為:

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中處理文件上傳也是用它,可以給出參數指明上傳文件存放的路徑,比如:

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

express.methodOverride():為了支持put、delete等HTTP方法,不過要客戶端配合,包含相應的_method參數,比如:

<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-mongo

"connect-mongo": "0.3.3"

然后在config/express.coffee中引入connect-mongo,並修改express.session的設置:

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最基本的配置項,其他常用的配置項,比如壓縮、數據校驗、認證和授權等都可以放在這里,下節繼續介紹。

轉載自:圖靈社區

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM