Встроенный http-клиент Node.js довольно низкого уровня, он не поддерживает базовую аутентификацию HTTP из коробки.Второй аргумент http.createClient
- это просто имя хоста.Там не требуется учетных данных.
У вас есть два варианта:
1.Создайте заголовок HTTP Basic Authorization самостоятельно
var Base64 = require('Base64');
var couchdb = http.createClient(443, 'weng.cloudant.com', true);
var request = couchdb.request('GET', '/my_app/_all_docs', {
'Host': 'weng.cloudant.com',
'Authorization': 'Basic ' + Base64.encode('weng:password')
});
request.end();
request.on('response', function (response) {
response.on('data', function (data) {
util.print(data);
});
});
Вам потребуется библиотека Base64, такая как , для узла, написанного на C , или чисто JS (например, тот, который использует CouchDB Futon ).
2.Используйте более высокоуровневый HTTP-клиент Node.js
Более многофункциональный HTTP-клиент, такой как Restler , значительно облегчит выполнение вышеуказанного запроса, включая учетные данные:
var restler = require('restler');
restler.get('https://weng.cloudant.com:443/my_app/_all_docs', {
username: 'weng',
password: 'password'
}).on('complete', function (data) {
util.print(data);
});