deployd中有没有办法将集合映射到不同的端点?

时间:2015-11-06 13:23:33

标签: deployd

我有一个名为customer_devices的集合,我无法更改名称。我可以通过deployd将它暴露为/ devices吗?怎么样?

2 个答案:

答案 0 :(得分:1)

我可以想到几种方法。如果您真的只想重命名该集合,可以从仪表板中完成,如@thomasb在其答案中所述。

或者,您可以创建一个"代理"事件资源devices并将所有查询转发给customer_devices。例如,在devices/get.js中你会说

dpd.customer_devices.get(query, function(res, err) {
    if (err) cancel(err);
    setResult(res);
});

更新
最后,这是一个" hack"将所有请求从一个资源路径重定向到另一个路径。这个测试很差,所以使用风险自负。这要求您按照here的说明设置自己的服务器。完成后,您可以使用以下代码段修改路由行为:

server.on('listening', function() {
    var customer_devices = server.router.resources.filter(function (res) {
        return res.path === '/customer_devices';
    })[0];
    // Make a copy of the Object's prototype
    var devices = Object.create(customer_devices);
    // Shallow copy the properties
    devices = extend(devices, customer_devices);
    // Change the routing path
    devices.path = "/devices";
    // Add back to routing cache
    server.router.resources.push(devices);
});

这将获取您的customer_devices资源,复制它,更改路径,然后将其重新插入到缓存的路由表中。我测试了它并且它有效,但我不能保证它的安全或好主意...

答案 1 :(得分:0)

您是否无法通过信息中心更改名称?

  1. 鼠标悬停您的收藏品customer_devices
  2. 点击向下箭头
  3. 选择'重命名'
  4. 输入新名称,然后点击“重命名'