JavaScript - я пытаюсь получить данные в базу данных, но возвращает statusCode: 400

Я успешно реализовал DS18B20 на Raspberry Pi с интерфейсом Gatsby. Мой следующий шаг — поместить все данные о температуре в mongodb, который я использую STRAPI в качестве бэкэнда. Ниже приведен мой код в server.js.

const express = require('express');
const http = require('http');
const socketIO = require('socket.io');
const app = express();
const server = http.createServer(app);
const io = socketIO(server);
const ds18b20 = require('ds18b20');
const fetch = require('isomorphic-fetch');
const port = 4001;

const interval = 1000;

io.on('connection', (socket) => {
  var sensorId = [];

  ds18b20.sensors((err, id) => {
    sensorId = id;
    socket.emit('sensors', id);
  });

  setInterval(() => {
    sensorId.forEach((id) => {
      ds18b20.temperature(id, (err, value) => {
        socket.emit('temps', {'id': id, 'value': value});
      });
    });
  }, interval);

  setInterval(() => {
    sensorId.forEach((id) => {
      ds18b20.temperature(id, (err, value) => {
        var tempData = {
          temperature: value,
          date: new Date()
        };
        fetch('http://172.20.10.3:1337/weathers', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
          },
          body: JSON.stringify(tempData),
        })
        .then(response => response.json())
        .then(data => console.info(data))
        .catch(err => console.info(err));
      });
    });
  }, 10000);

});

server.listen(port, () => console.info(`Listening on port ${port}`));

Он возвращает следующий журнал:

Dec 20 23:47:41 raspberrypi node[5195]: {
Dec 20 23:47:41 raspberrypi node[5195]:   statusCode: 400,
Dec 20 23:47:41 raspberrypi node[5195]:   error: 'Bad Request',
Dec 20 23:47:41 raspberrypi node[5195]:   message: 'ValidationError',
Dec 20 23:47:41 raspberrypi node[5195]:   data: { errors: { temperature: [Array] } }
Dec 20 23:47:41 raspberrypi node[5195]: }

Как я могу получить с помощью метода POST для STRAPI? Заранее большое спасибо.

JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Раскрытие чувствительных данных
Раскрытие чувствительных данных
Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не...
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Руководство ChatGPT по продаже мини JS-файлов
Руководство ChatGPT по продаже мини JS-файлов
JS-файл - это файл, содержащий код JavaScript. JavaScript - это язык программирования, который в основном используется для добавления интерактивности...
0
0
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я понимаю, я просто меняю значение на String с помощью .toString().

var tempData = {
          temperature: value,
          date: new Date()
        };

к

var tempData = {
          temperature: value.toString(),
          date: new Date()
        };

Другие вопросы по теме