7

我正在尝试创建一个名为“_users”的简单数据库,并使用 Couch-DB 将新用户插入其中。

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

用户配置文件.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);
        });

    }
};

节点复制

> 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,但不存在任何条目。我做错了什么吗?

4

1 回答 1

1

创建用户时,_id 必须是这样的:org.couchdb.user:name.

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

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

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

在创建_users的时候,即使_users数据库还没有被确认创建,你还是直接创建了一个用户。

于 2017-12-28T16:02:14.390 回答