2016-04-14 38 views
0

在尋找類似問題時,我花了幾個小時嘗試解決這個問題,但沒有任何運氣,所以我得出結論,唯一要做的就是在這裏發佈一個問題。當mongod進程運行時,Gulp watch任務會拋出EBUSY錯誤

我正在爲使用MongoDB進行數據持久性的Web應用程序開發後端。我使用Gulp並有一個監視js文件變化的監視任務。我也在使用瀏覽器同步,因此無論何時我在終端中運行gulp,web應用程序都會自動加載到瀏覽器中。在運行gulp之前,我使用「mongod --dbpath」命令啓動mongod進程。到目前爲止這麼好,沒有問題。

但是,當我再運行一飲而盡,手錶任務拋出一個EBUSY錯誤:

錯誤:EBUSY:資源忙或鎖定,SCANDIR「H:\源\程序\服務器\分貝\ mongoDbDir \ mongod的。鎖定」

這是我的任務,一飲而盡:

gulp.task('watch:server', ['server:start'], function() { 
var config = require('../../../config')().watch.server; 

console.log('CALLING GULP WATCH'); 
gulp.watch(config.scripts, ['server:restart']); // throws the error 

});

config.scripts只是指某些文件夾中的js文件(包括mongo db路徑目錄,即使這裏沒有js文件)。其餘任務正在運行的有:

// run server 
gulp.task('server:start', ['build:server'], function() { 
    var config = require('../../../config')().entrypoint.server; 
    server.listen({path: config.source, execArgv: ['--debug=5859']}); 
}); 

// restart server if entrypoint changed 
gulp.task('server:restart', ['typescript:server'], function() { 
    server.restart(); 
}); 

這裏使用的「服務器」是從大口,開發服務器模塊節點的js模塊。而我得到的錯誤顯示在這張照片:

Error shown in WebStorm Ide's terminal when running gulp

我沒有發現這樣的: Grunt Serve watch throws EBUSY warning over mongod.lock

這對咕嚕,雖然,但我試圖忽略的路徑,我的MongoDB看任務,並沒有幫助。

我真的被困在這裏,只要出現這個錯誤,我就無法使用網絡應用程序,因爲開發服務器不會響應任何事情。

任何人都可以幫助我這可能嗎?

回答

1

好吧,我的一個隊友實際上解決了這個問題。錯誤是我的源代碼中有我的數據庫路徑,它正在觀察。因此,將mongo db移動到默認的C:\ data \ db,然後在沒有dbpath的情況下運行「mongod」就是解決方案!

相關問題