Чтобы не раскрывать свою БД в приложении Node.JS, я попытался создать шлюз между CouchDB и Интернетом, просто передавая запросы и ответы между двумя серверами, чтобы уровень аутентификации контролировался мной. Сначала я попытался написать прокси сам, но после трудностей, которые я выбрал для вас узел-http-прокси, см. Пример:
app.all('*', (req, res) => {
proxy.web(req, res, {'target': 'http://127.0.0.1:5984'});
});
С другой стороны приложения я использовал PouchDB «pouchdb-getting-started-todo». Здесь не требуется много подробностей, достаточно сказать, что всякий раз, когда я подключаю «pouchdb-getting-started-todo» напрямую к CouchDB, синхронизация завершалась без ошибок, но каждая попытка с моим прокси-сервером запускалась нормально, регистрируя объекты запроса, повторяются одиннадцать раз, и в конечном итоге во внешнем интерфейсе генерируется ETIMEDOUT:
n {code: "ETIMEDOUT", status: 0, result: {…}}
code
:
"ETIMEDOUT"
result
:
{ok: false, start_time: Sat May 12 2018 02:45:52 GMT-0300 (-03), docs_read: 0, docs_written: 0, doc_write_failures: 0, …}
status
:
0
__proto__
:
Error
Поскольку CouchDB - это REST API, я ожидал, что смогу это сделать. Кто-нибудь знает, это ожидаемое поведение или аномалия?
Какие нужны доступы CORS? Возможно, это принесет мне немного света.





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