gpt4 book ai didi

couchdb - 使用 sofa 和 couchApp 的分析计数器

转载 作者:行者123 更新时间:2023-12-03 22:19:42 24 4
gpt4 key购买 nike

Couch 有一个 REST 接口(interface)。这意味着数据更新专用于 PUT 调用。

我正在检查实现一个不起眼的分析计数器的方法,并偶然发现了 couchdb、sofa 和 couchapp 的功能——考虑到我强烈的 JavaScript 倾向,它们有点酷。

但是,大多数网络分析服务都以使用请求某些资源(通常在 IMG 或 SCRIPT 标记中)进行计数更新调用结束。

  • 有什么方法可以让我使用 couchApp 来使用 GET 请求来执行我的计数?
  • 这是否属于滥用建筑学?我的意思是,并非沙发上的所有东西都是 REST - 例如,- 管理部分不是。

我很乐意听听专家们的意见:)

** 编辑*

我刚刚注意到 CouchDB 和 Sofa 附带了 Mochiweb 网络服务器!也许有什么方法可以让我捕获它?

最佳答案

fork 或插件的想法

如果您是 Erlang 程序员(或者您正在寻找一个新项目来学习 Erlang),那么您绝对可以编写任何您想要的东西作为 CouchDB 的插件/扩展。我所知道的最小示例是 Die CouchDB,这是我的概念验证,它添加了一个简单地停止服务器的查询。

https://github.com/iriscouch/die_couchdb

原则上,您可以编写 CouchDB 的插件或分支来处理 GET 请求并对其执行任何操作。

REST架构注意事项

我不是很熟悉分析实现,但 REST 和 HTTP 的要点是 GET 查询没有副作用和/或是幂等的(运行 50 个查询与运行一个查询没有区别).

结果是,代理可以并且将会以标准和非标准方式缓存许多 GET 响应。这似乎与用户跟踪和数据收集技术不相容;然而,也许分析工具仍然认为 yield 大于成本。

对于大多数人来说,使用外部工具可能更容易。

记录想法

一个技巧是从沙发上获取任何东西,然后从沙发上检查日志条目。您可以通过以管理员身份查询 /_log 来获取沙发日志。该日志将显示用户的 IP 地址、请求路径和任何查询参数。

例如

$ curl -X GET http://localhost:5984/?userid=abcde\&windowsize=1024x768\&color=blue
{"couchdb":"Welcome","version":"1.1.0"}

$ curl localhost:5984/_log | grep userid
[Mon, 23 May 2011 00:34:54 GMT] [info] [<0.1409.0>] 127.0.0.1 - - 'GET' /?userid=abcde&windowsize=1024x768&color=blue 200

接下来,您可以自己处理该日志条目并重新插入到您的实际分析数据库中。

包装理念

最终的解决方案是运行一个简单的反向代理,它将您的 GET 请求转换为您需要的任何内容。 NodeJS 越来越流行用于此类任务,但您可以使用您喜欢的任何 Web 平台:PHP、ASP、JSP,任何您已经知道的平台。

您只需响应 GET 请求并在服务器端执行您需要的任何操作,例如将相关信息插入您的分析数据库。

祝你好运!

关于couchdb - 使用 sofa 和 couchApp 的分析计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com