0

Angular Seed プロジェクトを使用して、単純な Web サイトを構築しています。ノード サーバーを起動し、localhost:8000 で URL を入力すると、ディレクトリの内容が提供されます。index.html ファイルを提供したいのですが、リダイレクトなしでこれを行いたいです。

次の関数を変更する必要があり、isDirectoryチェック用のコードを変更する必要があると思いますが、それが正しい方法であるかどうかはわかりません。任意の提案をいただければ幸いです。

StaticServlet.prototype.handleRequest = function(req, res) {
    var self = this;
    var path = ('./' + req.url.pathname).replace('//','/').replace(/%(..)/g, function(match, hex){
        return String.fromCharCode(parseInt(hex, 16));
    });
    var parts = path.split('/');
    if (parts[parts.length-1].charAt(0) === '.')
        return self.sendForbidden_(req, res, path);
    fs.stat(path, function(err, stat) {
        if (err)
            return self.sendMissing_(req, res, path);
        if (stat.isDirectory())
            return self.sendDirectory_(req, res, path);
        return self.sendFile_(req, res, path);
    });
}

更新 #1

明確にするために2つのスクリーンショットがあります。最初の画像は私が現在得ているもので、2 番目の画像は私が欲しいものです。

私が得るもの 私が得るもの


私が欲しいもの 私が欲しいもの


アップデート #2

以下の Restify へのリンクを使用して、まさに私が必要としていた次の例を見つけました。

var server = restify.createServer();
var io = socketio.listen(server);

server.get('/', function indexHTML(req, res, next) {
    fs.readFile(__dirname + '/index.html', function (err, data) {
        if (err) {
            next(err);
            return;
        }

        res.setHeader('Content-Type', 'text/html');
        res.writeHead(200);
        res.end(data);
        next();
});


io.sockets.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
            console.log(data);
    });
});

server.listen(8080, function () {
    console.log('socket.io server listening at %s', server.url);
});
4

1 に答える 1