节点服务器实时回显 POST/URL 参数
Node server to echo POST/URL parameters in real time
我正在做一个项目,通过 Arduino 将温度数据发送到节点服务器。 Arduino通过URL参数向服务器发送数据:
http://localhost:3000/submit?temprature=25
然后我使用以下节点获取发布的数据 server.js
var express = require('express');
url = require('url');
var app = express();
app.get('/submit', function(req, res){
var data = url.parse(req.url,true).query;
console.log(data);
});
app.listen(3000, function(){
console.log('listening on *:3000');
});
我可以用 console.log()
显示所需的数据,但我想要的是,一旦 Arduino 通过 URL 参数发送数据,该数据应该自动 echo/print 在服务器上:http://localhost:3000/index.html
就像实时一样。我怎样才能做到这一点?
您可以使用socket.io
在您的arduino设备每次更新温度时发出事件:
var http = require('http');
var url = require('url');
var express = require('express');
var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server); //pass a http.Server instance
server.listen(3000);
app.get('/submit', function(req, res){
var data = url.parse(req.url,true).query;
io.emit('temperature', data);
res.send('Temperature Updated to: ' + data.temperature);
});
app.get('/index', function(req, res){
res.sendFile(__dirname + '/public/index.html');
});
然后在客户端,可以监听事件,更新信息。这是 public/index.html
:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Socket.IO Temperature Example</title>
<link rel="stylesheet" href="style.css">
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
</head>
<body>
<h1 id="temperature"></h1>
<script>
var socket = io('http://localhost:3000');
socket.on('temperature', function (data) {
console.log(data);
$('h1#temperature').html(data.temperature);
});
</script>
</body>
</html>
我正在做一个项目,通过 Arduino 将温度数据发送到节点服务器。 Arduino通过URL参数向服务器发送数据:
http://localhost:3000/submit?temprature=25
然后我使用以下节点获取发布的数据 server.js
var express = require('express');
url = require('url');
var app = express();
app.get('/submit', function(req, res){
var data = url.parse(req.url,true).query;
console.log(data);
});
app.listen(3000, function(){
console.log('listening on *:3000');
});
我可以用 console.log()
显示所需的数据,但我想要的是,一旦 Arduino 通过 URL 参数发送数据,该数据应该自动 echo/print 在服务器上:http://localhost:3000/index.html
就像实时一样。我怎样才能做到这一点?
您可以使用socket.io
在您的arduino设备每次更新温度时发出事件:
var http = require('http');
var url = require('url');
var express = require('express');
var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server); //pass a http.Server instance
server.listen(3000);
app.get('/submit', function(req, res){
var data = url.parse(req.url,true).query;
io.emit('temperature', data);
res.send('Temperature Updated to: ' + data.temperature);
});
app.get('/index', function(req, res){
res.sendFile(__dirname + '/public/index.html');
});
然后在客户端,可以监听事件,更新信息。这是 public/index.html
:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Socket.IO Temperature Example</title>
<link rel="stylesheet" href="style.css">
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
</head>
<body>
<h1 id="temperature"></h1>
<script>
var socket = io('http://localhost:3000');
socket.on('temperature', function (data) {
console.log(data);
$('h1#temperature').html(data.temperature);
});
</script>
</body>
</html>