Вопрос:

Документ не найден / отсутствует после вставки в базу данных couchdb

javascript node.js nosql couchdb couchdb-nano

279 просмотра

1 ответ

447 Репутация автора

Я пытаюсь создать простую базу данных с именем _users и вставить в нее нового пользователя, используя Couch-DB.

Я использую 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, но запись не существует. Я что-то делаю неправильно?

Автор: David J. Источник Размещён: 28.12.2017 09:05

Ответы (1)


1 плюс

3045 Репутация автора

при создании пользователя, _id должен быть такой: org.couchdb.user:name.

В вашем случае вы создаете пользовательский сыр с другим именем.

Кроме того, вы можете проверить свой обратный вызов ошибки. Сообщение об ошибке должно быть возвращено с дивана.

Также

Когда вы удаляете и создаете базу данных, вы должны использовать обратный вызов.

Когда вы создаете _users, вы напрямую создаете пользователя, даже если не подтверждено создание базы данных _users.

Автор: Alexis Côté Размещён: 28.12.2017 04:02
Вопросы из категории :
32x32