Tag: couchdb

使用SuperLogin / Couchdb注册新用户的时间很长

用户注册SuperLogin意味着创build一个用户数据库。 经过调查,最终看起来像CouchDB本身和创build一个新的数据库时,30秒延迟。 我现在必须明白为什么CouchDB需要这么长时间才能做到这一点…] 在通过CouchDB数据库中的SuperLogin注册新用户时,我面临着30秒的延迟。 有时甚至更长,导致服务器超时错误。 但是,一切运行在同一台本地计算机上,Fauxton通常非常快,以及我在这个CouchDB数据库和PouchDB应用程序之间进行的数据同步。 你有什么想法如何解决这个问题? 或者至less如何获得有关发生的更多日志? 下边是: 1)Node / SuperLogin服务器的输出显示了OPTIONS和POST之间的30secs +延迟(OPTIONS是由于CORS引起的,但是POST查询来自postman时,我有相同的30secs + delay,所以CORS不应该是原因) 2)Server.js源代码 3)客户端代码。 非常感谢! 1)服务器输出 >node server.js Memory Adapter loaded App listening on 3000 ::1 – – [29/Nov/2016:21:44:42 +0000] "OPTIONS /auth/register HTTP/1.1" 204 – "http://localhost:8100/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36" ::1 – – [29/Nov/2016:21:45:19 +0000] […]

使用node.js nano模块将附件批量上传到couchDB

我正尝试使用node.js和nano将附件批量上传到CouchDB。 首先,walk模块用于查找上传文件夹中的所有文件,并从中创build数组。 接下来,数组中的每个文件都应该通过pipe道和nano模块插入到CouchDB中。 但是,最终的结果是只有一个附件已经上传。 var nano = require('nano')('http://localhost:5984') var alice = nano.use('alice'); var fs = require('fs'); var walk = require('walk'); var files = []; // Walker options var walker = walk.walk('./uploads', { followLinks: false }); // find all files and add to array walker.on('file', function (root, stat, next) { files.push(root + '/' + stat.name); next(); […]

使用Node.js,Redis和CouchDBpipe理将来的事件通知

我试图在服务器上使用Node.jspipe理date/时间事件通知。 有一种编程模式,我可以使用和适用于JavaScript? 目前,我正在使用命名的setTimeouts和Redis为每个超时存储一个布尔值。 当超时触发时,它检查Redis的布尔值。 如果返回true,则执行通知。 如果该值返回false,这意味着用户已经删除了事件,并没有通知。 这个解决scheme的工作,但我不相信这将是可扩展的,有几个原因: 1)事件可能在几天之后。 我不相信Redis长时间存储这些事件。 2)可能有成千上万的事件,我不希望setTimeouts遍布整个地方。 特别是在事件被删除之后。 我知道这个问题已经解决了,所以我希望有人能指点我一个资源或提供一个共同的模式。

如何为多个node.js应用程序设置AWS EC2?

我正在尝试从PaaS(nodejitsu)切换到IaaS(AWS)。 我想利用node.js,couchdb,express,npm,git和websockets。 现在这是棘手的部分。 我希望能够在不停机的情况下更新我的应用程序,并且希望能够在不停机的情况下更新节点和couchdb。 有任何想法吗? 有任何node.js PaaSs开源他们的软件? 我知道我在这里要求很多,任何帮助都会摇摆!

使用CouchDB和Node.js库

CouchDB使用javascript来validation,查询,做map-reduce等等。 我想知道有没有什么办法可以在这些JavaScript函数中使用node.js库? 比如使用require('http')或者用npm安装的一些第三方模块。 谢谢。

在nodejs中保存很多logging到couchdb

我有一个非常大的数据集 ,我想保存在couchdb的可search性。 我希望logging看起来像这样: { "type": "first", "name": "ryan", "count": 447980 } 由于文本文件大于我应该保留在内存中,我正在设置一个stream式readline读取器,如下所示: var db = require('./db'), readline = require('readline'), path = require('path'), fs = require('fs'); // simple callback after cradle save function saveHandler(er, doc){ if (er) return console.log('Error: ', er); console.log(doc); } // save record of type, based on line with count & name function […]

使用nock模仿多个沙发数据库请求

在我原来的function,我需要在同一个沙发login2个不同的数据库的请求。 var cloudant = require('cloudant')(https://cloudant_url); var userdb = cloudant.db.use('user'); var addrdb = cloudant.db.use('address'); function onChange(username) { userdb.get(username, function(err,resp) { var user_id = resp.id; addrdb.get(user_id,function(err1,resp1){ var addr = resp1.address; }); }); }; var nockVar = function() { nock(testCloudantDBURL) .get('/user/jack') .reply(200,{'id' : 123}); nock(testCloudantDBURL) .get('/address/123') .reply(200,{'address':'123}); }; describe('Test Cloudant Listener code' , function() { nockVar(); it('test get […]

在路由器中调用中间件function

我正在使用Mozilla的客户端会话在我的express.js应用程序上实施会话,我需要一些帮助。 我在我的router.js和app.js中的中间件中有我的post和gest请求,运行时出现这个错误: ReferenceError:requireLogin没有被定义 //index.js(路由器) var express = require('express') , router = express.Router() , user = require('../public/js/models/test.js'); router.get('/profile-header', requireLogin, function (req, res, html) { console.log(req.session); res.render('templates/profile-header.jade', { title: 'Default' }) }); router.get('/sign-in', function (req, res, html) { res.render('templates/sign-in.jade', { title: 'Sign In' }) }); router.get('/blog-home', requireLogin, function (req, res, html) { res.render('templates/blog-home.jade', { title: 'Blog' }) […]

沙发上多个组织的最佳实践

所以我有一个节点表示应用程序使用nano与couchdb作为后端,这是运行良好。 我现在正在研究如何将其扩展到多个组织。 因此,例如,为每个客户提供https://customername.myapp.com的通配DNSlogging。 然后,我将检查主数据库中的req.headers.host,并检查每个请求中的会话cookie等。 尽pipe如此,我正在努力争取我的头脑,后端将如何工作。 我想我明白,正确的方法是为每个组织使用数据库,并从模板数据库复制devise。 但如果这是正确的,我不明白这是如何转换为我的代码使用纳米。 我目前使用这个: var dbname = 'customer1'; var nano = require('nano')(config.dbhost); var couch = nano.db.use(dbname); 然后在我的function: couch.get(somevalue, function(err, body) { // do stuff }); 但是,当数据库本身是一个variables时,这是行不通的。 我应该把查询移动到一个较低的水平,例如nano.get('dbname',查询…或其他? 编辑 希望有人可以给我一个例子,说明如何使用中间件来改变依赖于主机头的数据库名称。 我到目前为止: app.use(function(req,res,next) { var couch = nano.db.use(req.header.host); next(); }); 但我不明白如何通过沙发对象(“沙发”在我的路由的其余部分是未知的)。 我已经尝试在“下一个(沙发)”传递回来,但是这打破了它…

Node.js和CouchDb应用程序结构的build议

我正在尝试使用Node.js和CouchDb构build一个简单的Web应用程序。 该应用程序将Twitter的Streaming API中的推文存储到CouchDB数据库中,然后将这些推送回到Web应用程序实时。 目前,我已经创build了一个简单的Node.js脚本,它可以将推文存储到数据库中,然后我可以在后台运行这个脚本,但是我一直坚持如何将结果反馈给用户。 我应该有这个(向最终用户推送推文)坐在一个单独的脚本,也在后台运行? 或者我应该把它与我目前的脚本捆绑在一起?如果是这样的话(伪)会怎样? 我是Node.js的新手,所以最好的方法是做一些指导。 提前致谢。