Couchbase nodejs, как получить данные из корзины шлюза синхронизации в корзину сервера

Итак, у меня есть это config.json на моем couchserver, работающем локально на моей машине.

{
    "couchbase": {
        "server": "127.0.0.1:8091",
        "bucket": "restful-sample",
        "username": "restful-sample",
        "password": "123456"
    }
}

И это syncgw-config.json как настройка шлюза синхронизации.

{
    "interface": ":4987",
    "adminInterface": ":4988",
    "log": ["CRUD", "CRUD+", "HTTP", "HTTP+", "Access", "Cache", "Shadow", "Shadow+", "Changes", "Changes+"],
    "databases": {
        "mycure": {
            "server": "http://localhost:8091",
            "bucket": "sync_gateway",
            "sync": `function(doc) {channel(doc.channels);}`,
            "users": {
                "GUEST": {
                    "disabled": false,
                    "admin_channels": ["*"]
                }
            },
            "shadow": {
                "server": "http://localhost:8091",
                "username": "restful-sample",
                "bucket": "restful-sample",
                "password": "123456"
            }
        }
    }
}

Хорошей новостью является то, что я могу вставлять данные в свою корзину restful-sample и синхронизировать или «затенять» их с моим мобильным телефоном, используя описанную выше настройку шлюза синхронизации. Все работает нормально, все вставленные данные синхронизируются с мобильным приложением.

Но плохая новость заключается в том, что наоборот, когда я добавляю данные из мобильного приложения, эти данные не синхронизируются автоматически в корзину restful-sample, но эти данные вставляются в корзину шлюза синхронизации. успешно. Я пропустил какой-то конфиг? Я должен быть честным здесь, я не думаю, что документация кушетки настолько ясна.

Кстати, я следовал этому прекрасное руководство по cean-stack, если вы хотите увидеть реальные запросы, происходящие на сервере.


person CENT1PEDE    schedule 21.06.2016    source источник
comment
Когда вы говорите, что не синхронизируется автоматически с сегментом сервера, вы имеете в виду сегмент sync_gateway или сегмент restful-sample? Вы не должны ожидать, что это пойдет ко второму, только к первому.   -  person borrrden    schedule 22.06.2016
comment
О, извините, да, в корзину restful-sample, данные были вставлены в корзину sync_gateway, но не в корзину restful-sample. @borrrden Итак, как мне его синхронизировать?   -  person CENT1PEDE    schedule 22.06.2016
comment
Я думаю, что ошибся в последней части. Вики-страница о затенении ведра подразумевает, что оно работает в обоих направлениях. Тем не менее, вы можете навлечь на себя много горя, если будете использовать это для нового проекта. Рассматривали ли вы вместо этого использование PouchDB? Это javascript-реализация базы данных, совместимая с Couchbase lite/Sync Gateway. Затенение сегмента — это способ использовать существующие данные в новом проекте, а не создавать новый проект.   -  person borrrden    schedule 24.06.2016
comment
Также посмотрите, говорят ли что-нибудь журналы.   -  person borrrden    schedule 24.06.2016
comment
@borrrden Я понял вашу точку зрения, спасибо. Но я думал, что теневое копирование — это средство синхронизации существующих внутренних данных с мобильным приложением? В любом случае моя проблема заключается в получении данных из корзины шлюза синхронизации, добавленной приложением. Есть идеи?   -  person CENT1PEDE    schedule 25.06.2016
comment
Да, именно для этого. Однако ваше имя создает впечатление, что вы начинаете новый проект. Может быть, вы просто тренируетесь с вашими реальными данными? Вы должны задать этот вопрос на форумах Couchbase, а не в категории мобильных устройств, потому что на самом деле я мало что знаю о затенении ведра. Также не забудьте проверить журналы на наличие чего-либо подозрительного.   -  person borrrden    schedule 25.06.2016
comment
@borrrden Я также разместил вопрос на форуме диванной базы, но никто не заметил, лол. В любом случае спасибо за ответ :)   -  person CENT1PEDE    schedule 25.06.2016


Ответы (1)


Существует не так много документации по затенению ведра, потому что эта функция устарела.

Рекомендуемый способ доступа к данным Sync Gateway с сервера — использование API REST шлюза синхронизации. С помощью этого API вы можете выполнять операции CRUD или доступ к просмотру. Это гораздо менее удобно, чем доступ к серверу Couchbase с помощью SDK. Я согласен, и многие функции отсутствуют (например, N1QL).

person Geoffrey Marizy    schedule 25.07.2016