gpt4 book ai didi

几次成功迭代后,React Native 应用程序无法访问树莓派 3B 上的 Node.js 服务器

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:52 24 4
gpt4 key购买 nike

我目前正在开发一个简单的 React Native,它向 Raspberry Pi3B 上托管的 Node.js 服务器发送打开或关闭 LED 的命令。

react native 代码:

import React from 'react';
import {StyleSheet, Text, View, Button} from 'react-native';

export default class App extends React.Component {
constructor(props){
super(props);};

led(couleur){
fetch('http://XXX.XXX.XXX.XXX:XXX/switchOnOff', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},body: JSON.stringify({'couleur': couleur}),
}).catch((error) => {
console.error(error);
});
}
render() {
return (
<View>

<View style={styles.bleu}>
<Button title="Bleu" color='blue' onPress={() => this.led('bleu')}/>
</View>

</View>
);
}

}

在 Raspberry 上,我的 Node.js 服务器有以下内容:

var express = require('express');
var fs = require("fs");
var bodyParser = require('body-parser');

var Gpio = require('onoff').Gpio,
led14 = new Gpio(14, 'out');

var app = express();
app.use(bodyParser.json());

var allumer = false;

app.post('/switchOnOff', function (req, res) {
coul = req.body['couleur'];
console.log('working!');

var val = !allumer ? 1 : 0;

if (coul == 'bleu'){
led14.writeSync(val);}


led14.watch((err, mess) => {
if (err){throw err }})
allumer = !allumer;
}
});


var server = app.listen(8000, function () {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})

奇怪的是,它连续工作了 5 次(我在服务器控制台中打印了五次“工作!”,并且 LED 灯打开/关闭)。

但是我收到以下错误:

enter image description here

从那时起,我无法使用 React Native 应用程序向服务器发送数据...

有人知道吗?

谢谢

最佳答案

实际上我明白了:

错误来自服务器端:我缺少一行代码res.end()结束每个请求

修改服务器端代码:

app.post('/switchOnOff', function (req, res) {
coul = req.body['couleur'];
console.log('working!');

var val = !allumer ? 1 : 0;

if (coul == 'bleu'){
led14.writeSync(val);}


led14.watch((err, mess) => {
if (err){throw err }})
allumer = !allumer;
}

//#########solving line##########
res.end
});

关于几次成功迭代后,React Native 应用程序无法访问树莓派 3B 上的 Node.js 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53932582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com