客户端通过按下按钮发送帖子请求。 (服务器端:开始扫描发现蓝牙外设)
在服务器之后,我们希望在寻找蓝牙外围设备的功能结束后发送res.send("BLE_name")
,但是在客户端按下按钮后很长一段时间内响应。
假设:我想在自己的自定义事件后调用app.post ...如何创建自定义事件来调用app.post()
?
我们使用:
// To send datas to client // List of bluetooth peripherals // JSON object app.post('/resScan', function(req, res){ res.send( JSON_Object ); });
问候和非常感谢,
菲利普
答案 0 :(得分:1)
我的朋友找到了解决方案,不确定是解决方案。
const formClientName = "form_03_btn";
var my_res_global = null;
app.get('/', function( req, res )
{
// We update the res value each time
// we have a app.post method
my_res_global = res;
res.render( formClientName );
}); // app.get('/', function( req, res ))
app.post('/arduino_cmd', function( req, res )
{
// We update the res value each time
// we have a app.post method
my_res_global = res;
commandLine = req.body.content;
sendCommandToArduino( commandLine );
res.render( formClientName );
}); // app.post('/arduino_cmd', function( req, res ))
[...]
dialogCharacteristic[dialogCharacteristic.length-1].on('data', function(data, isNotification )
{
[...]
my_res_global.render( formClientName, { displayArduino: "My test works fine !" } );
[...]
});
一切正常!
现在我们写错了:
dialogCharacteristic[dialogCharacteristic.length-1].on('data', function(data, isNotification )
{
[...]
var myData = "My test works fine !";
my_res_global.render( formClientName, { displayArduino: myData } );
[...]
});
给出错误: 错误:发送后无法设置标头。
我们正在寻找解决方案......
非常感谢您的所有时间,问题和想法!
致以最诚挚的问候,
菲利普。
答案 1 :(得分:0)
不,我与他合作,事实上我们遇到了问题:
按钮正常工作并正确调用服务器。我们也正确地收到了“req”,但是我们调用另一个函数(带有一个事件),这个函数需要一个随机时间,之后这个函数就完成了,然后我们想对响应开发票,如下所示:
noble.on('discover', function(){
//....many statements and others process here
// we use req.body.content here
// and at the end
app.post('/server.js', function(req, res){
res.send('data-to-the-client');
});
});
我们的问题更多:因为事件有效吗?并且告诉好的所有事件现在已完成,现在可以为res发票。