使用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] "POST /auth/register HTTP/1.1" 201 27 "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" 

2)服务器源代码(通过node server.js运行)

 var express = require('express'); var http = require('http'); var bodyParser = require('body-parser'); var logger = require('morgan'); var cors = require('cors'); var SuperLogin = require('superlogin'); var app = express(); app.set('port', process.env.PORT || 3000); app.use(logger('combined', { immmediate: true})); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cors()); app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header('Access-Control-Allow-Methods', 'DELETE, PUT'); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }); var config = { dbServer: { protocol: 'http://', host: 'localhost:5984', user: 'admin', password: 'bigsecret', userDB: 'sl-users', couchAuthDB: '_users' }, mailer: { fromEmail: 'myemail@gmail.com', options: { service: 'Gmail', auth: { user: 'myemail@gmail.com', pass: 'mypwd' } } }, userDBs: { defaultDBs: { private: ['supertest'] } }, } // Initialize SuperLogin var superlogin = new SuperLogin(config); // Mount SuperLogin's routes to our app app.use('/auth', superlogin.router); http.createServer(app).listen(app.get('port')); console.log("App listening on " + app.get('port')); 

3)客户端代码

  var headers = $http.defaults.headers.post; var user = { "name": 'John', "username": 'John', "email": 'contact7@john.com', "password": 'passwd', "confirmPassword": 'passwd' }; var req = { method: 'POST', headers: headers, url: "http://localhost:3000/auth/register", data: user }; return $http(req) .then(function(res) { console.log("success"); }, function(err) { console.log("error"); });