CouchDB 是服务器端 Javascript 的一个例子吗?

Posted

技术标签:

【中文标题】CouchDB 是服务器端 Javascript 的一个例子吗?【英文标题】:Is CouchDB an example of Server Side Javascript? 【发布时间】:2010-08-19 20:16:22 【问题描述】:

我正在研究使用 javascript 服务器端并查看了 persevere/pintura,但对于像我这样的新手,我需要更多文档和教程,而 CouchDB 似乎有很多,但它被用作服务器端 js 工具?

亲切的问候

【问题讨论】:

考虑重新考虑哪个答案是正确的。 谢谢,已妥当注意和整理!! 很高兴看到我认为最好的答案:) 【参考方案1】:

是的(附议@Pointy 上面所说的)。 CouchDB 中的 JavaScript 确实在服务器端运行。 :)

不过,除此之外,CouchDB 中的 JavaScript 可以做的远不止 map/reduce 查询。它还用于文档验证、更新处理(例如,用于处理 POST 到 CouchDB 的 XML),以及来自单个 JSON 文档(使用 _show)或 map/reduce 查询结果(使用_list)。

但是,CouchDB 不像 Node.js 那样提供文件系统访问或 TCP/IP 侦听器。目前,JavaScript 专注于数据库内容的“传送和处理”(例如验证、格式化和查询)。

如果您有兴趣研究处理 CouchDB “内部”不做的事情(图像处理、发送电子邮件等)的选项,您可以查看我关于 CouchApp architecture options 的回复。

CouchApp 绝对是 Web 应用程序的可行选择。将这些与复制相结合,很难被击败。

【讨论】:

感谢您的回答和您的帖子“CouchApp 架构选项”。也很有帮助【参考方案2】:

http://nodejs.org/ 是服务器端 javascript 的一个很好的例子。如果您不想在 NodeJS 上编写完整的 web 应用程序,可以通过 node 命令触发它。

【讨论】:

我不介意编写我的整个网络应用 Nodejs。几个月前我做了聊天教程,但我不知道它是如何工作的,我目前正在研究。【参考方案3】:

CouchDB 是一个具有有趣功能的数据库,它允许您通过 RestFull api 进行交互,使其非常适合在 javascript 或其他客户端环境中通过 Web 访问。如果您正在寻找服务器端 javascript 开发环境,请尝试Servoy。它允许使用 javascript 开发全功能的服务器端应用程序,包括轻松访问所有主要数据库的数据库。

【讨论】:

【参考方案4】:

简短回答:是的。

更长的答案:

CouchDB 附带了一个 Javascript 引擎,即SpiderMonkey (第一个引擎,开源,由 javascript 的创建者 Brendan Eich 编写)

CouchDB 的 View 函数是运行服务器端的 JavaScript 函数,它充当 map/reduce 操作的 Map 部分来构造视图。

然后是客户端javascript API,可以用来与REST层通信以获取/更新文档,这也是CouchDB使用jQuery的地方。

更多关于 CouchDB 的服务器端和客户端 JavaScript 功能:

默认引擎能够执行许多功能,而与 Node.js 相比,包的可用性受到限制。 Kan.so 可以被认为是“CouchDB 的 NPM,其中一些包是服务器端的。 例如,有像 duality 这样的框架尝试利用服务器端和客户端 JavaScript 功能来重用代码以使用 couchDB 进行渲染。

关于引擎的更多信息:

(选择spider Monkey优于v8是因为对于couchDB的用例,map reduce不是为v8设计的。还包括打包、多线程以及在选择spiderMoney时v8不存在的历史原因)见[邮件列表]和tweet2

甚至还有将整个 CouchDB 移植到 Node.js(即代替 Erlang)的项目,Chesterfield

如果有人可以添加 Erlang 如何与 javscript 引擎对话,我很高兴。 感谢大家的回答,对于像我这样用一些 Node.js 包搞乱 couchDB 的人来说,这是一件很重要的事情

【讨论】:

【参考方案5】:

不,CouchDB 是一个面向文档的数据库,可以使用 JavaScript 以 MapReduce 方式查询和索引。 CouchDB 还提供具有双向冲突检测和解决方案的增量复制。

http://couchdb.apache.org/

CommonJS 可用于服务器端 JavaScript,请参见此处:http://www.commonjs.org/

NodeJS 是另一个:http://nodejs.org/

【讨论】:

谢谢,我已经学习了 javascript、ruby、html、css 并且没有打扰后端。您能否列出从客户端到服务器端使用 javascript 所需的工具?我假设数据库和服务器端覆盖了相同的区域,只是有一点重叠,但我猜不是。我目前正在检查你玩我的链接。谢谢 JS 也用于验证和创建不同格式的列表和视图。使用 Couchapp,您可以编写托管在 CouchDB 上的完整 Web 应用程序,并使用 JS 编写并在服务器上运行的移动部分。 这看起来真的很酷很简单。唯一令人担忧的是他们描述中的“约束”一词。我将通读文档以进行检查。 “CouchApps 是直接从 CouchDB 提供的 JavaScript 和 HTML5 应用程序。如果您可以让您的应用程序适应这些限制条件,那么您就可以“免费”获得 CouchDB 的可扩展性和灵活性” @SQLMenace "No" 并不是真正的正确答案,因为 CouchDB(通过与 SpiderMonkey 集成)实际上 确实 允许在服务器中运行 Javascript 来处理地图之类的事情/减少,正如你所说。它在服务器上,并且正在运行 Javascript,那么这不是“服务器端 Javascript”吗?通常,该术语的意思是“不在每个人仍然期望它存在的网络浏览器中。” 您混淆了不同的概念。 CommonJS 是一个库标准。它本身没有用。 CouchDB 实现了 CommonJS。 Proof link所以你在自相矛盾。

以上是关于CouchDB 是服务器端 Javascript 的一个例子吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 couchdb 运行服务器端代码?

MongoDB 有本地 REST 接口吗?

javascript couchdb exporty #shell #couchdb

javascript couchdb exporty #shell #couchdb

如何避免 CouchDB 和 noSQL 数据库出现类似 SQL 的注入问题?

Mongodb/Couchdb 代替 MySQL(从 PHP 切换到 Node)