2016-03-19 2 views
0

Я начал изучать socket.io и использовал this example of chat.Node.js socket.io webserver предоставляет другой файл, кроме index.html

Когда я перехожу к ip:8080/public/index.html, мне также нужен доступ к другим файлам, например другим сценариям JS, которые будут использоваться на стороне клиента в браузере. Но когда я ставлю нагрузки сценарий, как это:

<script src="/js/phaser.js" type="text/javascript"></script> 

веб-сервер не возвращает его, и мне это нужно на этот обработчик кода.

У меня есть этот код:

var app = require('http').createServer(handler) 
var io = require('socket.io')(app); 
var fs = require('fs'); 

app.listen(8080); 

function handler (req, res) { 
    console.log(req.headers.referer); 
    fs.readFile(__dirname + '/public/index.html', // <--- I need here put filename which client wants it, but when I console.log to req it return HUGE data, I not found anythink usefull 
    function (err, data) { 
    if (err) { 
     res.writeHead(500); 
     return res.end('Error loading index.html'); 
    } 

    res.writeHead(200); 
    res.end(data); 
    }); 
} 

io.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    socket.broadcast.emit('new message', data); 
    console.log(data); 
    }); 
    socket.on('msg', function(data){ 
    console.log(data); 
    }) 
}); 
+0

Возможно, вы захотите использовать модуль [Экспресс-сервер] (http://expressjs.com/), а затем используйте 'express.static()', чтобы автоматически обслуживать каталог статических файлов с одной строкой кода. node.js по умолчанию не имеет файлов, поэтому вам нужно явно добавить код для ответа на запросы, которые вы хотите ему выполнить. Вы можете сделать это с помощью специального кода для каждого входящего запроса, который вы хотите обработать, или вы можете обслуживать целую иерархию каталогов файлов с одним блоком кода. – jfriend00

ответ

0

Вы можете использовать Express static для обслуживания статических файлов, таких как ваш * .js файлы.

Смежные вопросы