JavaScript - 我尝试将数据提取到数据库,但它 return statusCode: 400
JavaScript - I try to fetch data to database but it return statusCode: 400
我已经使用 Gatsby 前端在 Raspberry Pi 上成功实现了 DS18B20。
我的下一步是将所有温度数据放入 mongodb,我将其用作后端。
以下是我在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.log(data))
.catch(err => console.log(err));
});
});
}, 10000);
});
server.listen(port, () => console.log(`Listening on port ${port}`));
它return以下日志:
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?
非常感谢您。
我明白了,我只是通过 .toString() 将值更改为字符串。
var tempData = {
temperature: value,
date: new Date()
};
至
var tempData = {
temperature: value.toString(),
date: new Date()
};
我已经使用 Gatsby 前端在 Raspberry Pi 上成功实现了 DS18B20。 我的下一步是将所有温度数据放入 mongodb,我将其用作后端。 以下是我在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.log(data))
.catch(err => console.log(err));
});
});
}, 10000);
});
server.listen(port, () => console.log(`Listening on port ${port}`));
它return以下日志:
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? 非常感谢您。
我明白了,我只是通过 .toString() 将值更改为字符串。
var tempData = {
temperature: value,
date: new Date()
};
至
var tempData = {
temperature: value.toString(),
date: new Date()
};