Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C88C19AC1 for ; Fri, 8 Jun 2012 18:23:38 +0000 (UTC) Received: (qmail 41494 invoked by uid 500); 8 Jun 2012 18:23:37 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 41399 invoked by uid 500); 8 Jun 2012 18:23:37 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 41391 invoked by uid 99); 8 Jun 2012 18:23:37 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Jun 2012 18:23:37 +0000 X-ASF-Spam-Status: No, hits=2.5 required=5.0 tests=HK_RANDOM_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of qv.personal@gmail.com designates 209.85.160.180 as permitted sender) Received: from [209.85.160.180] (HELO mail-gh0-f180.google.com) (209.85.160.180) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Jun 2012 18:23:32 +0000 Received: by ghbz12 with SMTP id z12so1629272ghb.11 for ; Fri, 08 Jun 2012 11:23:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:content-type; bh=skLcoiGkVWlq6+LHMI9xPXw1nXQ8dAiFEZu3MaGheQg=; b=AtqDMlJOa7wCARU8k8mbpcZKf8NXMahyc1Jf/2+W013VzNTjutV8cFXPBOVbTkXTf3 WuJ5EFnKnnv/akUlYaigN3v9940rArtgKSxdjgccqaN8jpTXtfelv2uaLxN7i+5F6h3Q gBOEI1VZMjyMc7Ue/idbcmH4LsEPhQ5ru4VzEvqG7wQBhrowp4pPB6bi185wGMe04bn1 7W4FavBsk1JxPhNjcEq1yV8fVcXvYAHXhoyabwsK3LKqmnlcjKLPxFV9zTujlrWL0pr1 D5Jnj2zoWKrC6Ec7YjwWvVhsXzNo6anjguHfvUOiuZB0dGuxvhx0a/GhoP9imEd+4mfD lbag== Received: by 10.60.4.194 with SMTP id m2mr8222214oem.33.1339179791850; Fri, 08 Jun 2012 11:23:11 -0700 (PDT) MIME-Version: 1.0 Sender: qv.personal@gmail.com Received: by 10.182.45.137 with HTTP; Fri, 8 Jun 2012 11:22:50 -0700 (PDT) In-Reply-To: References: From: Quang Van Date: Fri, 8 Jun 2012 14:22:50 -0400 X-Google-Sender-Auth: omDnVMcLIS8ooXJuDKsi48eM4Ts Message-ID: Subject: Re: Node.js client for CouchDB To: user@couchdb.apache.org Content-Type: multipart/alternative; boundary=e89a8fb1eaf8c89e6104c1fa17db X-Virus-Checked: Checked by ClamAV on apache.org --e89a8fb1eaf8c89e6104c1fa17db Content-Type: text/plain; charset=ISO-8859-1 Any good Nano vs Cradle comparisons? I'm using cradle right now... and if a lot of people is recommending Nano over cradle, I wonder why... Thanks. On Fri, Jun 8, 2012 at 1:25 PM, Mark Hahn wrote: > > I find myself wondering why someone hasn't simply taken the javascript > code that > runs Futon and dropped it into a node.js module? > > I did something like that. I wrote a module that was a clone of jQuery > that just implemented the ajax with http.requests. Then I made minor mods > to the jquery code supplied with futon to make it a module. So I was able > to write DB code that ran on the server and client with no mods. > > I found 3 reasons to not do this ... > > 1) The futon driver used a sync ajax call which was impossible to implement > in node. I had to rewrite some of the code. The person at microsoft who > decided to include an sync call should be shot, as well as the futon coder > who used it. > > 2) The futon driver used non-standard callback returns. Different > callbacks were used for success and error. > > 3) I discovered there was no benefit in my code to having the same code run > both places. > > So I switched to nano. I love nano. I'm using rpc's over socket.io to get > db access from browser. > --e89a8fb1eaf8c89e6104c1fa17db--