Ich habe gerade ein Projekt, indem ich versuche Daten vom Arduino auf eine HTML-Seite zu übertragen. Dabei benutze ich node.js.
Jedoch bin ich noch relativ neu in dem Thema und kenne mich nicht so gut mit Servern und node aus.
Im Moment erhalte ich ständig die Fehlermeldung: Server is not a consructor (const io = new Server('COM3'))
Quelltext aus app.js:
var http = require("http");
var fs = require("fs");
var index = fs.readFileSync("index.html");
var SerialPort = require("serialport");
const parsers = SerialPort.parsers;
const parser = new parsers.Readline({
delimiter: "\r\n",
});
var port = new SerialPort("COM3", {
baudRate: 9600,
dataBits: 8,
parity: "none",
stopBits: 1,
flowControl: false,
});
port.pipe(parser);
var app = http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/html"});
res.end(index);
});
const Server = require('socket.io');
const io = new Server('COM3');
io.on("connection", function (socket) {
console.log("Node is listening to port");
});
parser.on("data", function (data) {
console.log("Received data from port: " + data);
io.emit("data", data);
});
app.listen(3000);
Quelltext aus index.html:
<!doctype html>
<html>
<head>
<title>Test</title>
<script src="https://cdn.socket.io/4.7.5/socket.io.min.js"></script>
</head>
<body>
<h1> Communicating between an arduino and a html website</h1>
<div id='sample'></div>
<script>
var socket = io();
socket.on('data',function(data){
console.log(data);
document.getElementById('sample').innerHTML = data;
});
</script>
</body>
</html>