如何处理来自Arduino ESP8266的JavaScript post请求
嘿,斯塔克社区。我刚刚进入了JavaScript和Node.JS的世界。但我对C#很了解。我正试图让Arduino收集一些数据并将其发送到我的Ubuntu服务器(租自DigitalOcean)。我正在使用ESP8266 Arduino发出post请求(Arduino wifi模块),我确信这部分工作正常 问题是,我想接收并显示Arduino在服务器上发送的数据。但是JavaScript部分似乎不起作用(在服务器上)。 ESP8266在此使用一个库:。以下是ESP8266 Arduino使用的代码如何处理来自Arduino ESP8266的JavaScript post请求,javascript,express,post,server,arduino-esp8266,Javascript,Express,Post,Server,Arduino Esp8266,嘿,斯塔克社区。我刚刚进入了JavaScript和Node.JS的世界。但我对C#很了解。我正试图让Arduino收集一些数据并将其发送到我的Ubuntu服务器(租自DigitalOcean)。我正在使用ESP8266 Arduino发出post请求(Arduino wifi模块),我确信这部分工作正常 问题是,我想接收并显示Arduino在服务器上发送的数据。但是JavaScript部分似乎不起作用(在服务器上)。 ESP8266在此使用一个库:。以下是ESP8266 Arduino使用的代码
include Arduino.h
include ESP8266WiFi.h
include ESP8266WiFiMulti.h
include ESP8266HTTPClient.h
#define USE_SERIAL Serial
ESP8266WiFiMulti WiFiMulti;
String ssid = "YourWifiName";
String password = "YourWifiPassword";
String website = "http://165.227.138.230/";
String data = "20";
void setup() {
USE_SERIAL.begin(115200);
// USE_SERIAL.setDebugOutput(true);
USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println();
for(uint8_t t = 4; t > 0; t--) {
USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
USE_SERIAL.flush();
delay(1000);
}
WiFiMulti.addAP("drach", "a5b4c3d2e1");
}
void sendData(String data) {
HTTPClient http;
USE_SERIAL.print("Attempting upload to");
USE_SERIAL.println(website);
http.begin("http://165.227.138.230/" + data);
int code = http.POST("Doge");
USE_SERIAL.print("Response code = ");
USE_SERIAL.println(code);
if ( code > 0 ) { USE_SERIAL.println("Upload succeeded"); }
if ( code == 0 ) { USE_SERIAL.println("Upload failed"); }
http.end();
USE_SERIAL.println("HTTP.end");
}
void loop() {
USE_SERIAL.println("Waiting for connecting");
if((WiFiMulti.run() == WL_CONNECTED)) {
sendData(data);
} else {
USE_SERIAL.println("Connecting faled, trying again");
}
delay(5000);
}
我们认为处理post请求的方法是使用JavaScript,使用Express和body解析器模块。Express有一个关于设置Express模块和get请求的示例。但是没有post请求的例子。指向express示例的链接:。这是我们最终得到的代码
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var urlencodedParser = bodyParser.urlencoded({ extended: false });
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.post('/', urlencodedParser, function(req, res){
console.log("Post triggered");
console.log(req.body);
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
我们的目标是接收并记录Arduino发送到服务器的数据
我们希望得到一个好的反馈!
非常感谢。有什么问题吗?对不起,说得不够清楚。问题是,我想接收并显示Arduino在服务器上发送的数据。但是JavaScript部分似乎不起作用(在服务器上)。有什么问题吗?很抱歉没有弄清楚。问题是,我想接收并显示Arduino在服务器上发送的数据。但是JavaScript部分似乎不起作用(在服务器上)。