Tag: couchdb

用双引号replace.toString()单引号

也许一个奇怪的请求,但我使用CouchDB的意见,这需要一个string被双引号包围。 这工作: ?键= [ “testing”, “234”] 这不会工作: ?键= [ 'testing', '234'] 所以在我的NodeJS应用程序中,我试图build立正确的密钥传递给CouchDB var key1 = "test"; var key2 = "234"; { key: [key1, key2] } 这总是出来 { key: [ 'test', '234' ] } 有没有什么有效的方法来获得我想要的结果? (双引号)

从Node.js和CouchDB开始,没有像纳米或摇篮库

可能重复: 尝试从Node.js插入文档到CouchDB时,出现“bad_request invalid_json”错误 CouchDB和Node.js的最高票数答案- 你推荐哪个模块? build议不要使用像Node.js和CouchDB一样的库(如nano或cradle)。 但是,我还没有find任何教程如何执行标准操作为所有DBMS如创build数据库,创build表,添加和查看数据等编程。 编辑:(部分回答)安装和启动CouchDB后去http://localhost:5984/_utils/script/couch.js 。

您将如何在NoSql数据库中对customer> order> ordertem> product进行build模?

我目前正在学习Node.JS,需要实现一个数据库。 所有的Node书籍似乎都认为MongoDB是最好的解决scheme,但似乎无法摆脱像Mongo和Couch这样的NoSQL数据库,我是MS SQL Server的家伙! 所以,我明白,你可以保持结构化的数据作为logging(JSON),但我不知道你如何build模一个典型的电子商务应用程序与以下(简化)表… customers (id, name, address) orders (id, customerID, orderDate) orderItems (id, orderID, productID) products (id, title, description, image) 所以,通常我会写这样的查询(但显然更好地优化)…. SELECT Customers.name, Products.title FROM (orders INNER JOIN customers ON orders.customerID = customers.id) INNER JOIN orderItems ON orderItems.orderID = orders.id INNER JOIN products ON orderItems.productID = products.id 如果我能看到一个如何在NoSQL数据库中工作的例子,那么我可能会开始“得到它”。 或者,我只是坚持使用MSSQL服务器或MySql,它们都与Node兼容吗?

Mongodb / Couchdb而不是MySQL(从PHP切换到节点)

我使用后端的PHP / MySQL / Solr和前端的Javascript / jQuery / Backbone完成了我的大部分Web开发工作。 我已经编写了一些Node应用程序,但是使用了MySQL,而不是使用Mongodb / Couchdb,这是很多Node教程/书籍使用的。 你会开始使用Mongo / Couch而不是MySQL,因为大多数开发Node的人都在使用它? MySQL似乎为我工作得很好,我不清楚切换到Mongo / Couch的优势。 现在我开始一个网站,其中“前端”应用程序服务器是PHP / MySQL,并且数字运算服务器在Node中。 我坚持使用PHP来服务“前台”的原因是因为我非常适合在我的PHP框架中开发。 select节点的原因是因为会有大量空闲/等待时间的同时任务以秒为单位。 这必须是高度可扩展的。 将存储在数据库中的东西就像通常的东西,你将存储在MySQL表中

如何处理callback函数中的响应(例如nodejs中的cradle)

我在“nodejs”中使用“express”和“cradle”。 如果我请求我的数据库,我必须定义一个callback来处理响应。 不幸的是我没有访问res(响应)在我的callback函数。 这个问题的最佳做法是什么? 这是我的代码。 var cradle = require('cradle'); var db = new cradle.Connection().database('guestbook'); app.get('/guestbook', function(req, res) { db.view('guestbook/all', function(err, doc) { console.log(doc); // How can I use res in this callback // to send the response? }); });

couchdb自定义authentication处理程序

我不得不承认,我对这个话题相当陌生,特别是对于erlang来说是新的。 目前,我正在尝试与各种身份validation处理程序 – 目标是在Facebook,Twitter等有一个工作的“委托身份validation”。 据我了解,couchdb的oAuth实现正好与我所需要的相反。 你可以使用它来为沙发用户创build令牌,但不接受twitter访问令/秘密并将其映射到沙发用户。 我在datacouch中发现了我需要的东西 – 使用nodejs对Twitter进行身份validation,然后从私人沙发上获取明文密码,并使用_session-API创build一个沙发cookie。 现在我试图避免存储明文密码。 我听说要使用proxy_authentification_handler,但似乎我太没有经验或甚至太愚蠢的使用它。 我做了(据我所知)在couch_httpd_auth正确的条目 couch_httpd_auth auth_cache_size 50 authentication_db _users authentication_redirect /_utils/session.html require_valid_user false proxy_use_secret false secret xxxxxxxxxxxx timeout 43200 x_auth_roles roles x_auth_token token x_auth_username uname 也在httpd部分 httpd allow_jsonp true authentication_handlers {couch_httpd_auth, proxy_authentification_handler},{couch_httpd_auth, cookie_authentication_handler}, {couch_httpd_auth, default_authentication_handler} bind_address 127.0.0.1 default_handler {couch_httpd_db, handle_request} port 5984 secure_rewrites false vhost_global_handlers _utils, _uuids, […]

Node.js使用二进制文件将http.ClientRequestpipe道传输到fs.createWriteStream会导致损坏的/臃肿的文件

我正在处理一个Node.js(v0.4.12)模块,我有一个奇怪的问题。 这是一个CouchDB模块,虽然我非常确定CouchDB在这里不是问题,但我会把它包含进来,因为它可能是有用的信息。 无论如何,我正在编写一个包装器,用于上传和下载附件与CouchDB。 我有上传部分工作得很好,这是我有困难的下载部分。 我的testing过程是这样的: 上传图片文件( http.request , fs.createReadStream ) 下载文件( http.request ) 将下载的文件保存到不同的位置进行比较/损坏检查( fs.createWriteStream , stream.pipe ) 这对于纯文本文件工作正常,但像图像的二进制文件行为不同。 正如我之前提到的,上传显示正常。 我可以访问CouchDB中的URL并查看图像。 (大小匹配,它呈现我上传的图像)当我使用我的模块下载文件并保存它,输出文件大于源文件,(50-100%大),它不能打开任何图像编辑。 (因此,它以某种方式被“损坏”) 当涉及到二进制文件时,我是否错过了Streams? 我已经尝试将encoding双方都改为"binary"和"base64" ,但输出文件仍然比源文件大50%。 在我发现编码选项之前,它被设置为"utf8" ,并且输出文件大了100%,这使我认为这是一个编码问题。 我也尝试手动pipe道stream(而不是使用pipe方法本身),但结果是相同的。

在同一应用程序中使用多个数据库

我目前在node.js开发一个应用程序。 我有一个Postgres / PostGIS数据库来存储地理空间信息,并将其呈现为SVG。 迄今为止工作正常。 另一方面,我有一个CouchDB数据库充满了以前项目的数据。 我想将这些数据与来自postgis的地理空间数据通过node.js结合起来,但是我不知道如何处理数据库的结构。 在一个应用程序中使用两种不同的数据库types(甚至范例)是一个好主意吗? 或者是将数据从一个数据库转换到另一个数据库更好? 顺便说一句:这纯粹是一个爱好项目。

对CouchDB的反向代理在Node.js中挂起POST和PUT

我使用请求在Express中实现以下反向代理到CouchDB: app.all(/^\/db(.*)$/, function(req, res){ var db_url = "http://localhost:5984/db" + req.params[0]; req.pipe(request({ uri: db_url, method: req.method })).pipe(res); }); 在进行GET请求时,它将起作用:请求从客户端转到node.js到CouchDB并成功返回。 POST和PUT请求无限期挂起。 日志语句运行直到代理,但CouchDB不表示收到请求。 为什么会发生这种情况,如何解决?

我应该如何构build我的数据库和API服务器为基于回合的多人iPhone的棋盘游戏? (考虑nodejs,mongo,沙发等)

我正在为iPhone和最终Android开发基于回合的棋盘游戏。 我正在使用Appcelerator Titanium来开发它。 我的多人游戏devise与Words With Friends类似。 准备好后,用户轮stream使用,然后相应地更新对手的游戏板。 我的需求之一是有一个消息传递API,使得玩家的设备能够在移动之后相互更新游戏板的状态。 想用JSON来做这件事,并且在包含所有游戏棋子的位置的设备上保留一个JSON对象。 这是需要在本地设备上更新的对象,然后在移动完成后将更改发送给对手的设备。 过去,我已经为移动平台完成了API,为此我使用了PHP和MySQL,并在API服务器和移动设备之间来回发送JSON。 适用于低并发用户,通常非常规的应用程序。 希望这个会变得庞大;) 所以现在,我开始考虑持久套接字,而不是一个普通的httpd服务器,而不是我的新游戏。 我也认为,放弃大型LAMP堆栈可能是明智的,而且为了可扩展性和易于开发,更多地倾向于像Mongo / Couch – > node.js – > iPhone这样的数据stream。 我会坦白的说,这将是我第一次进入非sql数据库和node.js。 有兴趣听到别人在这方面的经验和经验,有更多的select/想法,以及我是否以正确的方式思考,或只是为自己头痛。