关键词:
【中文标题】将 CouchDB 与 Node.js 库一起使用【英文标题】:Use CouchDB with Node.js library 【发布时间】:2013-08-28 10:54:38 【问题描述】:CouchDB 使用 javascript 来验证、查询、做 map-reduce 等等。我想知道有没有办法在这些 javascript 函数中使用 node.js
库?比如使用require('http')
或者安装了npm
的一些第三方模块。
谢谢。
【问题讨论】:
【参考方案1】:您可以使用 Node.js 库,只要它们不需要特定于 Node.js 的库,例如 http
。例如,async 在 CouchDB 中工作。经验法则:如果它适用于服务器和客户端,你应该很好。
您可以使用 CommonJS 的 module.exports
和 exports[something]
模式在视图之间共享代码。查看the documentation了解更多详情。
例如,考虑这个视图:
_id:"_design/test",
views:
lib:
test: "exports.guests = 42;"
,
fish_per_person:
map: function(doc)
var guests = require('views/lib/test').guests; // 42
emit(doc.number_of_fish, doc.number_of_fish / guests);
fish_per_person
视图需要在 lib/test
中导出的值 guests
。
【讨论】:
谢谢。但我想我会需要这些库。 哪些库?你想达到什么目的?这听起来像是一个挑战,我很感兴趣。 我现在没有具体的事情要完成。但我可以想象一些。例如,如果我正在处理online judge system,在用户提交代码后,我需要使用child_process
在CouchDB 更新处理程序中编译和运行它。
聪明!我将在 Cloudant 提出这个用例,看看我们能做什么。另一方面,在应用层做到这一点并不难。从 Node.js 进程查看数据库的 _changes 提要,并在相关更改通过提要时做出反应。【参考方案2】:
不,没有办法从 CouchDb 内部的 Node 模块使用外部 JavaScript。你可以做一些有限的分享:http://wiki.apache.org/couchdb/HTTP_view_API#Sharing_Code_Between_Views
Node 是一个暴露于 Javascript 语言绑定的平台,因此 Node 的“优点”在于执行环境。
虽然有一种方法可以使用 Python 编写视图,但我不知道 Node 有什么类似的东西。
【讨论】:
值得指出的是,CouchDB 目前使用 Mozilla 的 SpiderMonkey JS 引擎来执行。但是,在 CouchDB 邮件列表中已经讨论过用 Node.js 替换它,这将允许在 CouchDB 中使用 NPM 模块。 (但这还有很长的路要走) 有趣的发现。用于生产用途?不,我不会使用它。此外,由于节点是单线程的,因此您会将所有内容集中到一条路径上。 @WiredPrairie 我找到了an article。事实上,我可以使用任何语言来编写视图服务器。它使用标准输入/标准输出进行通信。所以我认为在查询视图服务器时会有一个拆分过程开始。你认为它可以用于生产环境吗? 他要多点故障吗? Nodejs 也没有达到 1.0。将 JSON 数据库与 Node 和 React 一起使用
】将JSON数据库与Node和React一起使用【英文标题】:UseJSONdatabasewithNode&React【发布时间】:2018-12-2320:26:57【问题描述】:我正在使用Node.js和React开发一个Web应用程序。一个JSON文件用于存储文本数据和我使用的图片的存储库。它... 查看详情
将 Heroku 插件与 node.js 一起使用
】将Heroku插件与node.js一起使用【英文标题】:UseHerokuaddonmongolabwithnode.js【发布时间】:2015-01-1722:42:09【问题描述】:我在mongolab中使用node.js,我已经按照mongolab教程(https://devcenter.heroku.com/articles/mongolab#getting-your-connection-uri)在我... 查看详情
将 JQuery 与 node.js 一起使用时出错
】将JQuery与node.js一起使用时出错【英文标题】:ErrorsusingJQuerywithnode.js【发布时间】:2012-10-1009:06:56【问题描述】:我在Windows7上运行了全新安装的node.js,我正在尝试运行一个非常基本的JQuery脚本,名为a.js,其中仅包含:require("... 查看详情
您可以将 CouchDB 的“文档更新处理程序”与复制一起使用吗?
】您可以将CouchDB的“文档更新处理程序”与复制一起使用吗?【英文标题】:CanyouuseCouchDB\'documentupdatehandlers\'withreplication?【发布时间】:2016-02-2215:56:12【问题描述】:我正在将文档从DBA复制到DBB,每次来自DBA的文档到达DBB时,... 查看详情
将 PouchDB 与 MongoDB 一起使用
...发布时间】:2014-08-1414:35:03【问题描述】:我从未使用过CouchDB。我想在我的客户端应用程序上使用PouchDB,但我不确定它是否可以与MongoDB集成,因为Pouch旨在与CouchDB一起使用。虽然我的API是用PHP编写的,但我没有像在CouchDB中那... 查看详情
将 Gigya API 与 node.js 一起使用
】将GigyaAPI与node.js一起使用【英文标题】:UsingGigyaAPIwithnode.js【发布时间】:2011-11-0621:42:40【问题描述】:对于我的一个项目,我想尝试将Gigya作为我的社交网络连接提供商,并且正在使用Node.js编写我的应用程序。有人做过吗?... 查看详情
如何将 Node.js 中的 net 模块与 browserify 一起使用?
】如何将Node.js中的net模块与browserify一起使用?【英文标题】:HowtousethenetmodulefromNode.jswithbrowserify?【发布时间】:2015-08-3003:02:27【问题描述】:我想在客户端(在浏览器中)使用来自Node.js的net模块:varnet=require(\'net\');所以我查... 查看详情
您将如何将 node.js 子进程与 discord.js 一起使用?
】您将如何将node.js子进程与discord.js一起使用?【英文标题】:Howwouldyouusenode.jschildprocesseswithdiscord.js?【发布时间】:2021-09-0118:25:58【问题描述】:所以我有一个用javascript编码的不和谐机器人,它在与数据库交互或进行图像处理... 查看详情
javascript如何将mongodb与node.js一起使用(代码片段)
如何将 jsonp 与 node.js express 一起使用
】如何将jsonp与node.jsexpress一起使用【英文标题】:Howtousejsonpwithnode.jsexpress【发布时间】:2013-08-1609:31:01【问题描述】:我正在尝试使用node.js制作三星智能电视应用程序。在我的项目中,我想让我的应用程序与服务器pc通信。根... 查看详情
如何有效地将 CouchDB 与规范化数据一起使用?
】如何有效地将CouchDB与规范化数据一起使用?【英文标题】:HowdoIeffectivelyuseCouchDBwithnormalizeddata?【发布时间】:2014-08-1920:31:43【问题描述】:我花了很长时间(日历)来了解CouchDB和map/reduce以及如何将它用于各种用例。我让自... 查看详情
如何将 Mongoose/Mongodb 与 node.js- 护照身份验证一起使用
】如何将Mongoose/Mongodb与node.js-护照身份验证一起使用【英文标题】:HowtouseMongoose/Mongodbwithnode.js-passportauthentication【发布时间】:2022-01-0814:22:48【问题描述】:我正在构建我的第一个全栈node.js应用程序,我想使用护照进行身份验... 查看详情
phantomjs 可以与 node.js 一起使用吗?
】phantomjs可以与node.js一起使用吗?【英文标题】:canphantomjsworkwithnode.js?【发布时间】:2013-03-2215:25:17【问题描述】:我想在我的node.js脚本中使用phantomjs。有一个phantomjs-node库..但不幸的是作者使用这个奇怪的咖啡脚本代码来解... 查看详情
将 Node.js 的 Express 与 vhost 一起使用时出现意外错误
】将Node.js的Express与vhost一起使用时出现意外错误【英文标题】:UnexpectederrorusingNode.js\'sExpresswithvhosts【发布时间】:2014-07-1203:29:14【问题描述】:这是错误:代码如下:runapps.js:varexpress=require(\'express\');varapp=express();varfirst=require(\... 查看详情
如何将 Asterisk ARI 与 socket.io 和 Node.js 一起使用
】如何将AsteriskARI与socket.io和Node.js一起使用【英文标题】:HowtouseAsteriskARIwithsocket.io&Node.js【发布时间】:2016-01-0207:27:24【问题描述】:最近开始接触星号、Linux、node.js和最近的socket.io,以便我最终可以为星号制作实时Web应用... 查看详情
请求新页面时如何将 AngularJS 路由与 Express (Node.js) 一起使用?
】请求新页面时如何将AngularJS路由与Express(Node.js)一起使用?【英文标题】:HowtouseAngularJSrouteswithExpress(Node.js)whenanewpageisrequested?【发布时间】:2012-10-2416:58:13【问题描述】:我正在使用Express,它从静态目录加载AngularJS。通常,我... 查看详情
如何将 REST 与 Node.js 和 AngularJS 一起使用在不同的端口上?
】如何将REST与Node.js和AngularJS一起使用在不同的端口上?【英文标题】:HowtouseRESTwithNode.jsandAngularJSbeingondifferentport?【发布时间】:2013-03-0907:00:55【问题描述】:我正在尝试了解Angular和Node.js在后端的合作。但是我不知道如何使用... 查看详情
将 `require()` 与 `node --eval` 一起使用
】将`require()`与`node--eval`一起使用【英文标题】:Use`require()`with`node--eval`【发布时间】:2011-06-0217:27:22【问题描述】:在使用node.js对--eval的新支持时,当我尝试使用require()时出现错误(ReferenceError:requireisnotdefined)。这是一个失败的... 查看详情