ESP8266 успешно размещен, и база данных получает запись, но пустые данные - PullRequest
0 голосов
/ 22 мая 2019

Я использую библиотеку ESP8266HTTPClient для отправки данных в мою базу данных.Хотя ошибок не было, и мой сервер ответил успешно.Когда я проверил свою базу данных, она получила запись, однако она пуста.

Я проверил мой API с Почтальоном, и он полностью работает.

Код:

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const char* ssid = "foo";
const char* password = "bar";
const char* host ="http://foo.com/";
const char* fullHost ="http://foo.com/api/update";
String PostData = "employeeID=1002&lotNumber=3&lotSize=XS&lotQuantity=46&jobSheetNumber=9&processId=200&timeTaken=30";


void setup() {

  Serial.begin(115200); 
  delay(10);

// Standard code to connect to Wifi using <ESP8266WiFi.h> library.

}

void loop() {

  Serial.print("\nConnecting to server: ");
  Serial.println(host);

  HTTPClient http;
  http.begin(fullHost);
  http.addHeader("Content-Type", "application/x-www-form-urlencoded");

  int httpCode = http.POST(PostData);
  String payload = http.getString();                 
  Serial.println(httpCode);   //Print HTTP return code
  Serial.println(payload); 
  http.end();

  delay(5000);
}

Вывод:

"Connecting to server: http://foo.com/"

"200"

"DATABASE UPDATE SUCCESSFUL"

РЕЗЮМЕ: Данныесодержащиеся в PostData не обновляются в базе данных, несмотря на успешное подключение к базе данных и запись.

1 Ответ

0 голосов
/ 22 мая 2019

Хорошо, так что мне удалось решить проблему.Я использовал MongoDB и Express Framework для создания веб-приложения.Проблема заключалась в том, что я использовал req.query.foo для анализа запроса POST.

Правильная команда для использования была req.body.foo .Спасибо всем за ваши ответы.

...