跳到主要內容

發表文章

目前顯示的是 十月, 2012的文章

Ubuntu how to enable CouchDB world wide connect

原couchdb安裝起來之後,本機端可以直接連線 但若要將連線開放給外部連線相連,則需要進行一些額外設定:
1. 確認目前couch用到的config是哪一支,這邊採用ps的方式來看,其中"-a"的部分後面所帶的就是需要修改的config file,打開config之後,在binding ip的部分修改成外部可以連線的ip位置


2. 防火牆設定: # service iptables stop
3. 重啓couchdb: # /etc/init.d/couchdb restart

Exception when for loop request

下面是一個簡單的node.js http request來抓取某個url的值 對象url也是用node.js (expressjs)建立的restful web 但是實驗發現在while loop之下有一些request會傳不回值
var request = require('request');
while(true) {
  request('http://xxx.xxx.xxx.xxx:3000/xxx', function(err, response, body) {
    if(!err) 
      console.log(body);
    else 
      console.log(JSON.stringify(err));
  });
}
仔細觀察對象web server的回應 發現應該是web server在瞬間接收到一個以上request時候 server會忽略掉太相近的request... 在沒有比較好的解法之前,可以這樣做:
var request = require('request');
var i = 0; while(true) {
  i++;  setTimeout(function(){ //透過setTimeout來延遲request之間的時間  request('http://xxx.xxx.xxx.xxx:3000/xxx', function(err, response, body) {
    if(!err) 
      console.log(body);
    else 
      console.log(JSON.stringify(err));
  });
  }, 100*i ); }
透過setTimeout來延長while loop所觸發的非同步http request 這樣就可以讓對象web server可以順序的回應了∼