在 sails 中响应 socket.io post 函数的正确方法是什么?
What is the correct way to respond to a socket.io post function in sails?
客户端:
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
});
}
}
这有效,它 returns 测量值,但它也 returns 出现以下错误:
Error: Cannot write to response more than once
我认为这是因为 Sails 在我的响应之后发送了 200 响应,但我不知道如何覆盖 Sails 的响应或将测量值附加到它。
事实证明帆比我想象的要聪明。通过反复试验,我发现我可以替换:
return this.res.status(200).json({
measurements: measurements
});
与:
return ({measurements});
帆会完成剩下的工作。
客户端:
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
});
}
}
这有效,它 returns 测量值,但它也 returns 出现以下错误:
Error: Cannot write to response more than once
我认为这是因为 Sails 在我的响应之后发送了 200 响应,但我不知道如何覆盖 Sails 的响应或将测量值附加到它。
事实证明帆比我想象的要聪明。通过反复试验,我发现我可以替换:
return this.res.status(200).json({
measurements: measurements
});
与:
return ({measurements});
帆会完成剩下的工作。