javascript - mongod 进程运行时 Gulp watch 任务抛出 EBUSY 错误

标签 javascript node.js mongodb gulp watch

我花了几个小时试图自己解决这个问题,同时寻找类似的问题,但没有任何运气,所以我得出的结论是,唯一要做的就是在这里发布一个问题。

我正在开发一个 Web 应用程序的后端,我在其中使用 MongoDB 进行数据持久化。我使用 Gulp 并有一个监视任务来监视 js 文件中的更改。我还使用 browsersync,因此每当我在终端中运行 gulp 时,网络应用程序都会自动加载到浏览器中。在运行 gulp 之前,我使用“mongod --dbpath”命令启动 mongod 进程。到目前为止一切顺利,没有任何问题。

但是当我运行 gulp 时,监视任务会抛出 EBUSY 错误:

错误:EBUSY:资源繁忙或锁定,scandir 'H:\source\app\server\db\mongoDbDir\mongod.lock'

这是我的 gulp 任务:

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();
});

这里使用的“服务器”是来自 gulp-develop-server 模块的 Node Js 模块。我得到的错误如下图所示:

Error shown in WebStorm Ide's terminal when running gulp

我确实发现了这个: Grunt Serve watch throws EBUSY warning over mongod.lock

不过,这是针对 Grunt 的,但我试图在监视任务中忽略 MongoDB 的路径,但没有帮助。

我真的被困在这里,只要这个错误存在,我就无法使用网络应用程序,因为开发服务器不会响应任何内容。

有人可以帮我解决这个问题吗?

最佳答案

好吧,我的一位队友实际上解决了这个问题。错误是我的源代码中有我的数据库路径,而 gulp 正在监视它。因此,将 mongo db 移动到默认的 C:\data\db ,然后在没有 dbpath 的情况下运行“mongod”就是解决方案!

关于javascript - mongod 进程运行时 Gulp watch 任务抛出 EBUSY 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36619026/

相关文章:

javascript - 如何在Sinon JS中延迟假后端的特定响应

javascript - XMLHttpRequest 替换元素不适用于 LocalStorage

javascript - jQuery 选择链接在 Chrome 上不起作用

node.js - Spotify API 授权授予流程状态 415

node.js - 具有快速网关的微服务 : routes return 404 error

javascript - 修复 AngularJS 1.2.0 [$parse :isecprv] errors

python - 使用 Python 插入到具有唯一键的 MongoDB 集合

javascript - Ember 1.0 预发布支持属性是否发生变化?

ajax - node.js:在成功验证 get 请求后提供文件(特别是 apk)

javascript - 检查 mongodb 服务器是否同步事件