2013-03-11 64 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