Cześć,
Mam następujący problem: pracuję na raspberry pi i node.js, postawiłem serwer za pomocą http oraz socket.io. Serwer działa poprawnie, czyli strona index.html wyświetla się i pracuje obustronna komunikacja. Jednak chciałbym móc podłączyć zewnętrzne pliki w tym .css oraz .js do strony, tak aby nie było wszystko w jednym .html. Oto mój kod:
var http = require('http').createServer(handler)
var io = require('socket.io')(http)
var fs = require('fs')
http.listen(8080)
function handler(req, res) {
const path = __dirname + '/www/'
fs.readFile(path + 'index.html', function (err, data) {
if (err) {
res.writeHead(404, { 'Content-Type': 'text/html' })
return res.end("404 Not Found")
}
res.writeHead(200, { 'Content-Type': 'text/html' })
res.write(data)
return res.end()
})
}
process.on('SIGINT', function () {
process.exit()
})
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
<script defer src="test.js"></script>
</head>
<body>
socket.onevent = function (packet) {
//To działa bez zarzutów
}
</body>
console.log('hello world')
Na konsoli strony serwera zwracany jest błąd: Uncaught SyntaxError: Unexpected token '<' z źródła test.js.
Czy jest w stanie ktoś mi wskazać, w jaki sposób zmodyfikować kod, tak aby była możliwość odczytu z innych plików? Próbowałem również res.write() na skrypty js (tu test.js), ale niestety zwracało je jakby były .html i nie dało się dalej z nich korzystać. Cały folder również próbowałem wprowadzać na serwer, ale wówczas nie potrafiło zidentyfikować automatycznie index.html.
Z góry dziękuję za pomoc oraz rady.