到目前为止,我对Javascript的理解是它是一种客户端语言,可以捕获事件并使网页动态化.
但是在阅读MongoDB和CouchDB(http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB)之间的比较时,我注意到两者都在使用JS.这让我想知道JS选择其他传统语言背后的原因.
我想我正在努力理解JS的作用及其优于其他语言的优势.
更新:我不是在询问两个dbs支持的语言/驱动程序.比较说 - "CouchDB和MongoDB都使用Javascript.CouchDB广泛使用Javascript,包括构建视图.... MongoDB还支持在服务器端运行任意javascript函数,并使用javascript进行map/reduce操作."
我缺乏理解的原因是为什么JS完全用于后端工作.为什么首选在CouchDB中构建视图,或者使用map/reduce操作?为什么不使用C/C++或Java?使用JS进行后端工作有什么好处?
答:总结https://softwareengineering.stackexchange.com/q/121411/41398上的答案.MongoDB和其他NoSQL dbs正在使用SpiderMonkey来执行服务器端JS功能.这是维基百科到spidermonkey的链接 - http://en.wikipedia.org/wiki/SpiderMonkey_(JavaScript_engine)
PS:如果有人想对这个问题进行投票,请发表评论来解释原因.
许多语言的问题是缺少沙盒(能够在地图函数中执行'rm -rf /'被认为是一个问题),javascript,因为它的浏览器根源,有一个.Javascript是CouchDB中的默认视图服务器,但协议已记录在案,并且存在其他语言绑定(Ruby,Python等).它还附带一个原生的Erlang选项.
在后端使用与前端相同的语言也很优雅,但CouchDB不会强迫您选择语言,它只是附带一个可靠的Javascript视图引擎.
有关视图服务器协议的详细信息以及指向备用实现的链接,此处:
http://wiki.apache.org/couchdb/View_server