2013-03-11 62 views
0

我是新來的node.js,所以請盡情。node.js - express - URL和錯誤處理

我只是玩弄node.js和快速模塊。 我有一個想法如何處理瀏覽器請求,現在我有一個簡單的問題:

這是一個好主意/實踐還是有更好的解決方案來處理?

var http = require('http'); 
var express = require('express'); 
var fs = require('fs'); 
var app = express(); 

http.createServer(app).listen(80); 

app.get('/*',function(req,res,next){ 
    fs.exists(__dirname + req.url, function (exists) { 
     if(exists) 
     { 
      console.log('Sending ' + __dirname + req.url + "..."); 
      res.sendfile(__dirname + req.url);  
     } 
     else 
     { 
      console.log(__dirname + req.url + " not found!"); 
      res.send('Sorry, page not found.',404);  
     } 
    }); 
}); 

回答

1

Express基於Connect,因此支持它的中間件。並且您的情況有一個完美的中間件:static file serving

app.use(express.static(__dirname + '/public')); 

這將成爲所有文件/public目錄內可從根目錄靜態文件。對於沒有單獨處理且沒有文件的路由,返回404錯誤。

Btw。你想把listen-call調到最後。

+0

謝謝你的回答,幫了我很多。是否有任何快遞文檔或一般的節點模塊? – steffka 2013-03-11 20:45:22

+1

是的,請參閱[快速指南](http://expressjs.com/guide.html)和[API參考](http://expressjs.com/api.html),當然還有[連接文檔]( http://www.senchalabs.org/connect/)以獲得完整的概述。然後你可以隨時查看項目的來源。 – poke 2013-03-11 20:48:06

+0

好吧,我會這麼做的。非常感謝你 ! – steffka 2013-03-11 20:50:50