2015-06-02 59 views
0

我有一个socket.io项目,但它不让我使用公用文件夹。我想启动该hello.jsexpress.static在node.js项目中不起作用

http://i.stack.imgur.com/ugDZw.png

但我只看到

http://i.stack.imgur.com/fZhjJ.png

我什么都试过,只是重新安装的node.js

var express = require('express'); 
var app = express(); 
var http = require("http"); 
var io = require('socket.io'); 
var url = require('url'); 
var fs = require('fs'); 

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

var server = http.createServer(function(request, response){ 
    console.log('Connection'); 
    var path = url.parse(request.url).pathname; 

    switch(path){ 
     case '/': 
      response.writeHead(200, {'Content-Type': 'text/html'}); 
      response.write('hello world'); 
      response.end(); 
      break; 
     case '/socket.html': 
      fs.readFile(__dirname + path, function(error, data){ 
       if (error){ 
        response.writeHead(404); 
        response.write("opps this doesn't exist - 404"); 
       } 
       else{ 
        response.writeHead(200, {"Content-Type": "text/html"}); 
        response.write(data, "utf8"); 
       } 
       response.end(); 
      }); 
      break; 
     default: 
      response.writeHead(404); 
      response.write("opps this doesn't exist - 404"); 
      response.end(); 
      break; 
    } 
}); 

server.listen(8001); 

回答

0

你不使用您的快速应用程序,而是仅使用http.Server。如果您想使用您的快速应用程序(这是正在使用您的static中间件是哪里),你应该换出定制的回调http.createServer()app使得读取:

var server = http.createServer(app) 

那么对于Socket.IO与整合快递,您需要按照this example