响应sails中socket.io post函数的正确方法是什么?

时间:2021-06-20 23:06:03

标签: socket.io sails.js

客户端:

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 的响应或将测量值附加到它。

1 个答案:

答案 0 :(得分:0)

事实证明,sails 比我想象的要聪明。通过反复试验,我发现我可以替换:

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: aws-sqs-queue-scaledobject
  namespace: default
spec:
  scaleTargetRef:
    name: test-deployment
  minReplicaCount: 0
  maxReplicaCount: 2
  triggers:
  - type: aws-sqs-queue
    authenticationRef:
      name: keda-trigger-auth-aws-credentials
    metadata:
      queueURL: https://sqs.us-east-1.amazonaws.com/012345678912/Queue
      queueLength: "5"
      awsRegion: "us-east-1"

与:

return this.res.status(200).json({
        measurements: measurements
    });

剩下的就交给帆了。

相关问题