【问题标题】:Starting mongodb server using npm scripts使用 npm 脚本启动 mongodb 服务器
【发布时间】:2018-04-06 05:44:10
【问题描述】:

我正在使用 cmd 使用以下命令启动 mongodb 服务器:

“C:/Program Files/MongoDB/Server/3.6/bin/mongod.exe”

完美启动mongodb服务器

现在我需要通过 npm 脚本来完成。下面是我的 package.json 文件:

package.json:

"scripts": {
"ng": "ng",
"prestart": "start /b \"C:/Program Files/MongoDB/Server/3.6/bin/mongod.exe\"",
"start": "ng serve | node server.js",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}

现在当我点击 npm start 时,它不会启动 mongodb 服务器。

我还在环境变量(用户和系统)中包含了路径“C:/Program Files/MongoDB/Server/3.6/bin/mongod.exe”。

谁能帮我知道我错在哪里?

【问题讨论】:

    标签: mongodb npm


    【解决方案1】:

    我阅读了 start cmd 命令的帮助并能够在单独的命名窗口中运行它:

    "scripts": {
        "db": "start \"ToDo MongoDB instance\" /D \"C:/Program Files/MongoDB/Server/4.0/bin/\" mongod.exe --dbpath=\"C:/GIT/NodeJS/todo/db\""
    },
    

    【讨论】:

    • 与 prestart 相比,这是一个优雅的解决方案。
    【解决方案2】:

    尝试使用反斜杠转义Program Files 中的空格,即Program\ Files。我不是 Windows 用户,但我希望这也适用。

    编辑

    正如您自己发现的那样,您还可以将路径括在(转义)引号中,然后解析包含空格的目录名称应该可以工作。

    【讨论】:

    • 谢谢巴托博士。请看我编辑的帖子。现在会打开一个新的命令提示符,但不会启动 mongodb 服务器。
    • 你需要start 命令吗?我认为这就是导致额外提示的原因;尝试直接调用.exe:"prestart": "\"C:/Program Files/MongoDB/Server/3.6/bin/mongod.exe --dbpath E:/nodejs/mongo/data/db\""
    • 我试过了。但它给出了以下错误:无效命令:Files/MongoDB/Server/3.6/bin/mongod.exe。此外,我已经用胡萝卜(^) 逃脱了程序和文件之间的空间。仍然没有运气。
    • 更新:使用 start /b 停止 npm 来创建一个新的 cmd 窗口。但是服务器没有启动。
    • 当然有办法,正如我发布的页面名称所暗示的那样(“running-local-mongodb-with-npm-scripts”)。我自己做,但在 Mac 上.. 完全没有问题。抱歉,我们没有为您找到方法。我敢肯定这只是一个小细节。最后一个(现在我是认真的!)认为,作为一种解决方法,您可以编写一个好的旧批处理文件来启动服务器并从 npm 脚本调用该批处理文件。
    【解决方案3】:

    这对我来说适用于 Windows:

    "scripts": {
        "db": "path_to_mongod.exe --dbpath path_to_mongodb-data_folder"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-05
      • 2017-03-21
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      相关资源
      最近更新 更多