0

我是 node.js 的新手,所以请放纵一下。

我只是在玩 node.js 和 express-module。我知道如何处理浏览器请求,现在我有一个简单的问题:

这是一个好主意/做法还是有更好的解决方案来处理它?

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);     
        }
    });
});
4

1 回答 1

1

Express 基于Connect,因此支持其中间件。并且有一个适合您情况的完美中间件:静态文件服务

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

这会将目录中的所有文件/public作为根目录中可用的静态文件提供服务。对于未单独处理且不存在文件的路由,将返回 404 错误。

顺便提一句。你想把listen-call 放在最后。

于 2013-03-11T20:42:18.430 回答