2011-01-11 23 views
1

以下是處理:我使用node.js連接到本地CouchDB實例。node.js在設置系統代理時進行本地主機客戶端請求

問題:「響應」事件未觸發。所以我假設它沒有獲得連接。

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上執行curl會給出「錯誤代碼:502代理錯誤」的錯誤。

+0

真的看起來像一個代理錯誤。在本地訪問http://127.0.0.1:8124/_uilts/時會發生什麼? – 2011-01-11 14:47:13

回答

0

首先,請按@PartlyCloudy的建議嘗試訪問127.0.0.1:8124/_utils

其次,儘量使用CouchDB的LIB如cradle,讓您的生活更輕鬆(和儘量減少失誤)

npm install cradle 

記住要停止進#node.js和提問!一定要報告你的發現。

0

如果您正在使用要求來製作HTTP請求設置代理爲空字符串。它會採取優先於系統設置(你可以做到這一點,只有當目標IP是當前計算機IP)

var options = { 
     agent: ..., 
     url: ..., 
     method: ..., 
     proxy: '' 
    }; 
var req= request(options); 
. 
. 
. 
相關問題