这是交易:我使用node.js连接到本地CouchDB实例。
问题:“响应”事件未触发。所以我假设它没有得到连接。
var http = require('http'),
sys = require('sys'),
url = require('url');
var server = http.createServer(function (request, response) {
var client = http.createClient(5984, '127.0.0.1'); // couchdb
var request_db = client.request('GET', '/_all_dbs');
console.log('Created a request for _all_dbs');
request_db.addListener('response', function(response_db) {
console.log('Some response from CouchDB');
});
}).listen(8124);
console.log('Server running at http://127.0.0.1:8124/');
唯一的唯一输出是:
Server running at http://127.0.0.1:8124/
Created a request for _all_dbs
我也猜测这可能是代理问题。在Ubuntu 10.10中,我有一个系统范围的代理设置,但我告诉它忽略127.0.0.1。在127.0.0.1:5984/_all_dbs上进行卷曲会在“错误代码:502代理错误。”上显示错误。
答案 0 :(得分:0)
首先,尝试访问127.0.0.1:8124/_utils,因为@PartlyCloudy建议。
其次,尝试使用诸如cradle之类的couchdb lib来让您的生活更轻松(并最大限度地减少错误)
npm install cradle
请记住停留在#node.js并提出问题!务必报告您的调查结果。
答案 1 :(得分:0)
如果您使用请求将http请求设置代理设置为空字符串..它将优先于系统设置(只有当目标IP是当前机器IP时才能执行此操作)
var options = {
agent: ...,
url: ...,
method: ...,
proxy: ''
};
var req= request(options);
.
.
.