2012-05-17 53 views
2

我想用node.js和socket.io为我的网站添加一些实时功能,但不必处理页面请求/响应的麻烦。我可以获得普通的文件夹功能,它首先为index.html提供服务,然后自动加载任何js/css依赖项?Node.JS的默认文件夹功能

谢谢!

回答

7

您可以使用Express框架。将您的文件放在公共文件夹下,所有样式,JavaScript文件,其他HTML文件。你只需要给出一个入口点,所以它可以给客户端index.html。

var fs = require("fs"); 
    var express = require("express"); 
    app = express.createServer(); 

    app.use(express.static(__dirname + '/public')); 
    app.get('/', function(req, res) { 
     fs.readFile(__dirname + '/public/index.html', 'utf8', function(err, text){ 
      res.send(text); 
     }); 
    }); 
    app.listen(3000); 
+0

这个伟大的工程,谢谢! – user1318416

2

如果您只希望提供静态文件,那么使用express很简单。

的app.js文件仅仅需要具有的代码

var express = require('express'); 

    var app = express.createServer(
     express.static(__dirname + '/public') 
     ); 

    app.listen(3000); 

将所有的HTML,CSS,JavaScript文件以下行是在您的应用程序的根目录中的“公共”文件夹中。因此,一个典型的应用程序文件夹是这样的:

app.js 
    /public 
    index.html 
    reset.html 
    ... 
    ... 
    /css 
     main.css 
     reset.css 
     ... 
     ... 
    /js 
     header.js 
     util.js 
     ... 
     ... 
1

我用稍微不同的方法具有相同的结果:

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

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

app.listen(process.env.PORT || 3000);