socket.io - 在sails 中响应socket.io post 函数的正确方法是什么?
问题描述
客户端:
io.socket.get('/measurements', {
id: id,
_csrf: csrf,
}, function (resData, jwRes) {
console.log(resData);
});
服务器端:
fn: async function () {
var measurements = [];
if (!this.req.isSocket) {
//error here
} else {
// get measurements, removed this section for readibility
return this.res.status(200).json({
measurements: measurements
});
}
}
这有效,它返回测量值,但它也返回以下错误:
Error: Cannot write to response more than once
我认为这是因为 Sails 在我的响应之后发送了 200 响应,但我无法弄清楚如何覆盖 Sails 的响应或将测量结果附加到它。
解决方案
原来风帆比我想象的要聪明。通过反复试验,我发现我可以替换:
return this.res.status(200).json({
measurements: measurements
});
和:
return ({measurements});
其余的工作由 Sails 完成。
推荐阅读
- python-3.x - 异步和线程:为什么线程 ID 总是相同的?
- python - 尝试启动 Jupyter python 交互时 VSCode 抛出错误
- php - 使用 PHP 在 Google Drive API 中获取验证码的问题
- typescript - Type Guard 确保变量是 TypeScript 中的对象
- r - R中是否有任何函数可以在散点图的圆圈内给出标签?
- vb.net - 如何解决 UPDATE 语句中的语法错误
- javascript - 从两个父容器访问数据 - ReactJS
- python - 如何通过 sanic 获取主机名?
- magento2 - 将自定义字段添加到 Adminhtml 表单并填写数据(Magento 2)
- swift - 将这些组合成一个 var