express.static不';无法在node.js项目中工作

express.static不';无法在node.js项目中工作,node.js,Node.js,我有一个socket.io项目,但它不允许我使用公用文件夹。我想发布hello.js 但我只看到 我尝试了一切,只是重新安装了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(expr

我有一个socket.io项目,但它不允许我使用公用文件夹。我想发布hello.js

但我只看到

我尝试了一切,只是重新安装了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);

您使用的不是Express应用程序,而是裸机应用程序。如果要使用Express应用程序(即使用
静态
中间件的位置),应将
http.createServer()
的自定义回调替换为
app
,以便读取:

var server = http.createServer(app)
然后,对于Socket.IO与Express的集成,您需要遵循以下步骤