插入couchdb数据库后找不到/缺少文档

时间:2017-12-28 09:05:27

标签: javascript node.js nosql couchdb couchdb-nano

我试图创建一个名为' _users'的简单数据库。并使用Couch-DB将新用户插入其中。

我在shell中使用Node来运行以下代码:

UserProfile.js

var nano = require('nano')('http://localhost:5984')        
module.exports = {
    addUser: function(id, name, password){                
        var usersDB = nano.use('_users')
        var options = {
            "_id": "org.couchdb.user:"+id,
            "name": id,
            "roles": [],            
            "type": "user",
            "password": password
        }
        usersDB.insert(options, function(err, body, header) { 
            console.log('insert is being called')
            if (err) {
                console.log(err.message);
                return;
            }            
            console.log(body);
        });

    }
};

节点repl

> var nano = require('nano')('http://localhost:5984')
undefined
> var usersdb = nano.db.destroy('_users')
undefined
> var usersdb = nano.db.create('_users')
undefined
> var profile = require('./UserProfile.js')
undefined
> profile.addUser('cheese', 'flubber', 'goat')
undefined
> insert is being called
> OS process timed out.

运行此操作后,我希望在/_users/cheese处看到一个条目,但不存在任何条目。我做错了吗?

1 个答案:

答案 0 :(得分:1)

创建用户时,_id必须如下:org.couchdb.user:name

在您的情况下,您创建一个具有不同名称的用户奶酪。

此外,您可能想要检查错误回调。应该从Couch返回错误消息。

另外

删除并创建数据库时,必须使用回调。

创建_users时,即使尚未确认_users数据库尚未创建,也直接创建用户。