【问题标题】:How to run node project in a linux VM?如何在 linux VM 中运行节点项目?
【发布时间】:2016-07-25 13:06:19
【问题描述】:

我有一个 express 节点项目。我通过运行命令启动服务器 npm start 在我本地的项目文件夹中,它按预期工作。

我尝试在远程 linux VM 上运行相同的命令。但是关闭终端后,服务器正在关闭。所以我尝试从 npm start &nohup npm start & 开始。 但是关闭终端服务器后仍然停止。

那么如何在后台启动 express 项目的节点服务器呢?

我的package.json 文件如下所示:

{
  "name": "test_project",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "concurrently \"tsc -w\" \"node ./bin/www\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings install",
    "bundle": "node bin/bundler.js",
    "bundle:prod": "node bin/bundler.js --prod"
  },
  "dependencies": {
    "body-parser": "~1.13.2",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "express": "~4.13.1",
    "morgan": "~1.6.1",
    "serve-favicon": "~2.3.0",
    "mongodb": "2.2.4",
    "request": "~2.73.0"
  },
  "devDependencies": {
    "@angular/common": "2.0.0-rc.3",
    "@angular/compiler": "2.0.0-rc.3",
    "@angular/core": "2.0.0-rc.3",
    "@angular/http": "2.0.0-rc.3",
    "@angular/platform-browser": "2.0.0-rc.3",
    "@angular/platform-browser-dynamic": "2.0.0-rc.3",
    "@angular/router": "^3.0.0-alpha.7",
    "@angular/router-deprecated": "2.0.0-rc.2",
    "@angular/upgrade": "2.0.0-rc.3",
    "systemjs": "0.19.27",
    "core-js": "^2.4.0",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.6",
    "zone.js": "^0.6.12",
    "angular2-in-memory-web-api": "0.0.12",
    "concurrently": "^2.0.0",
    "systemjs-builder": "^0.15.17",
    "typescript": "^1.8.10",
    "typings": "^1.3.0",
    "yargs": "^4.7.1"
  }
}

【问题讨论】:

标签: node.js linux ubuntu express angular


【解决方案1】:

你可以永远使用,

npm install -g forever

并且可以从以下开始:

forever start bin/www

也许这不是适合您的情况的最佳方法,但它应该有效。你可以像这样永远看到工作过程:

forever list

请记住,当您在项目目录中时,您应该永远开始。

我推荐 dotenv。 https://www.npmjs.com/package/dotenv 您可以根据您的工作空间设置您的环境。如果你同时使用forever和dotenv,你可以这样使用:

forever start -c "node -r dotenv/config" bin/www dotenv_config_path=.development

【讨论】:

  • 好吧,你不必永远把你的 package.json 放在你的 package.json 中,只需像我说的那样安装 forever 就可以了。我认为你使用 express 框架。你可以像forever start bin/www 一样工作。 Forever 很好,即使您的 node.js 应用程序崩溃,它也可以继续工作!你应该试试:)
【解决方案2】:

你可以“永远”使用 npm 包:

将其安装为全局:

[sudo] npm install forever -g

运行后:

forever start app.js

完整文档:https://www.npmjs.com/package/forever

【讨论】:

    【解决方案3】:

    您可以在许多平台上Run it as a service,而不是在终端中启动它。上面帖子中的答案给出了一个很好的例子。此外,它不需要任何额外的软件包。

    【讨论】:

      【解决方案4】:

      另一个运行节点应用的最佳工具是pm2

      使用pm2安装并运行

      npm install pm2 -g
      pm2 start app.js
      

      http://pm2.keymetrics.io/了解更多关于pm2的信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-06
        • 1970-01-01
        • 2014-03-25
        • 2010-10-31
        • 2014-10-09
        • 1970-01-01
        • 1970-01-01
        • 2021-11-09
        相关资源
        最近更新 更多