2013-10-10 13 views
0

我想填充我的CompoundJS應用程序的Mongo數據庫與種子文件,但每當我運行compound seed,終端掛起後,我的console.log語句......數據庫填充,但我必須用Ctrl-c殺死命令。CompoundJS:填充數據庫與種子文件掛起

我試過做compound seed harvest,但是這並沒有創建適當的種子文件,所以我決定自己做。這裏是我的各自的代碼:

DB /種子/開發/ Host.js(種子文件)

console.log("Seeding Hosts...."); 

var hosts = [ 
    { 
    hid: '1', 
    name: 'MY API', 
    domain: 'mydomain.com' 
    } 
]; 

hosts.forEach(function(obj, err){ 
    Host.create(obj, function(err, host){ 
    console.log('host Added: ', host); 
    }); 
}); 

DB/schema.js

var Host = describe('Host', function() { 
    property('hid', String); 
    property('name', String); 
    property('domain', String); 
    set('restPath', pathTo.hosts); 
}); 

配置/數據庫.js

module.exports = { 
    development: { 
     driver: 'mongodb', 
     url:  'mongodb://localhost/apicache-dev' 
    }, 
    test: { 
     driver: 'mongodb', 
     url:  'mongodb://localhost/apicache-test' 
    }, 
    production: { 
     driver: 'mongodb', 
     url:  'mongodb://localhost/apicache-production' 
    } 
}; 

就像我說的,當我運行compound seed時,它顯示了兩個console.log語句,它將我的數據放入數據庫,但它只是掛起......從不真正返回到命令行,所以我不得不殺死它用Ctrl-c。我想解決這個問題,因爲我必須使這個過程自動化,而且如果它只是掛起,它有點難以自動化。我究竟做錯了什麼?任何幫助,將不勝感激!

Cross-posted.

編輯

所以,當我嘗試使用這與compound seed harvest產生的咖啡腳本版本:

DB /種子/開發/ Host.coffee

Host.seed -> 
    hid: '1' 
    name: 'MY API' 
    domain: 'mydomain.com' 
    id: "52571edd2ac9056339000001" 

我得到錯誤集合名稱必須是字符串。所以我有點好奇,去了哪裏產生錯誤...在node_modules/jugglingdb-mongodb/node_modules/mongodb/lib/mongodb/collection.js在線103.我把console.log(collectionName)就在這之前if聲明中,看到了一個有趣的輸出...

{ hid: '1', 
    name: 'MY API', 
    domain: 'mydomain.com', 
    id: NaN } 

所以很明顯它不是一個字符串,而是一個哈希對象,和我收集的域名(主機)更是遙遙無期。對我來說就像一個錯誤。

回答

1

所以我終於把它工作。顯然,收穫命令中的自動編號有問題,所以我最終刪除了這一行,瞧!種植種子就像一種魅力。我將其餘的JS文件轉換爲Coffee腳本文件,一切正常。有時候,你只需要在互聯網上與自己的對話......

這是我的種子文件:

Host.seed -> 
    hid: '1' 
    name: 'MY API' 
    domain: 'mydomain.com' 

而且做compound seed作品沒有掛和填充數據庫。猜猜咖啡腳本是要走的路嗎?