将 CouchDB 与 Node.js 库一起使用

     2023-02-23     35

关键词:

【中文标题】将 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.exportsexports[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)。这是一个失败的... 查看详情