内置的Node.js http客户端相当低级,它不支持现成的HTTP
Basic身份验证。第二个参数
http.createClient只是一个主机名。它不希望那里有凭据。
您有两种选择:
1.自己构造HTTP基本授权标头
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.enpre('weng:password')});request.end();request.on('response', function (response) { response.on('data', function (data) { util.print(data); });});您将需要一个base64库,例如一个用C编写的节点库,或一个纯JS库(例如CouchDB
Futon使用的库)。
2.使用更高级的Node.js HTTP客户端
更强大的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);});


