1

我正在尝试从 parse.com 云代码(node.js)创建一个 Keen 事件。我正在使用一个似乎设置正常的 JS 模块( https://github.com/roycef/keen-parse )。为了进行测试,我设置了一个简单的测试,这里是完整的 main.js(已删除凭据):

var express = require('express');
var app = express();

// Global app configuration section
app.use(express.bodyParser());

var Keen = require('cloud/keen.js');
var keen = Keen.configure({
    projectId: "xxxxxxxx",
    writeKey: "xxxxxxxx"
});

app.get('/kiss', function (req, res) {
    var resp = {};
    var respCode = 404;
    var testObj = {"firstname": "John", "surname": "Doe"};

    // send single event to Keen IO
    keen.addEvent("Testola", testObj, function (err, res) {
        if (err) {
            resp = err;
            respCode = 500;
        } else {
            resp = res.data;
            respCode = 200;
        }
    }).then(function () {
        // send something back to the app
        res.setHeader('Content-Type', 'application/json');
        res.send(resp, respCode);
    });
});

app.listen();

当我得到 /kiss 时:

  • 记录存储在 Keen.io 的相关集合中(是的 - 我可以在 Expolorer 中看到它!)但是
  • 收到的响应(错误)是 {"code": "UnknownError"}

所以,2个问题:

  1. 为什么当事件似乎正确地记录在敬业度.io 时会发送错误响应?
  2. 我该怎么做才能使上述工作正常进行?
4

2 回答 2

1

看起来敏锐解析正在为 Keen 使用旧的特定于节点的 SDK。该 SDK 很久以前就被弃用了,我相信从那时起 API 中发生了一些重大变化。

相反,您可能想直接使用敏锐的 js。设置起来非常简单,而且我认为您不会真正失去敏锐解析的任何功能。

于 2015-08-31T16:14:23.147 回答
1

试试敏锐跟踪.js。这是一个新的仅用于跟踪的 SDK,它可以完全替代热衷于 js。以下是使用新 SDK 对示例代码的快速重写:

var express = require('express');
var app = express();

// Global app configuration section
app.use(express.bodyParser());

var Keen = require('keen-tracking');
var keen = new Keen({
    projectId: "xxxxxxxx",
    writeKey: "xxxxxxxx"
});

app.get('/kiss', function (req, res) {
    var resp = {};
    var respCode = 404;
    var testObj = {"firstname": "John", "surname": "Doe"};

    // send single event to Keen IO
    keen.recordEvent("Testola", testObj, function (err, res) {
      res.setHeader('Content-Type', 'application/json');
      if (err) {
        res.send(err, 500);
      }
      else {
        res.send(res, 200);
      }
    });
});

app.listen();
于 2016-06-22T02:49:51.923 回答