2012-05-17 74 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);