Node.js 如何让express在Heroku应用程序上工作?

Node.js 如何让express在Heroku应用程序上工作?,node.js,express,heroku,npm,Node.js,Express,Heroku,Npm,我在Heroku上有一个应用程序,当我运行node server.js时,它抛出了一个错误并说错误:找不到模块“express” 我已经清除了npm缓存,重建了应用程序,检查了package.json和依赖项。没有什么对我有用,我现在只是在寻找解决办法 throw err; ^ Error: Cannot find module 'express' at Function.Module._resolveFilename (internal/modules/cjs/loa

我在Heroku上有一个应用程序,当我运行
node server.js
时,它抛出了一个错误并说错误:找不到模块“express”

我已经清除了npm缓存,重建了应用程序,检查了package.json和依赖项。没有什么对我有用,我现在只是在寻找解决办法

    throw err;
    ^

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
    at Function.Module._load (internal/modules/cjs/loader.js:508:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at Object.<anonymous> (/app/server.js:1:79)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)

Express应该在您的
依赖项中
而不是
依赖项中
。下面是您如何知道将第三方依赖项放在何处的方法

  • 应用程序是否需要依赖项才能运行?将其放入依赖项中
  • 应用程序是否需要依赖项来构建、测试、lint或任何其他应用程序 发展任务?将其放入
    devdependency

只有当您需要在运行项目之前构建项目时,这种情况才会变得模糊。然后,您的一些构建依赖项可能被放置在
依赖项中,而不是
devdependences
。我确信有一种更专业的方法来管理它,但我就是这样做的。

Express应该在您的
依赖项中,而不是
依赖项中。下面是您如何知道将第三方依赖项放在何处的方法

  • 应用程序是否需要依赖项才能运行?将其放入依赖项中
  • 应用程序是否需要依赖项来构建、测试、lint或任何其他应用程序 发展任务?将其放入
    devdependency

  • 只有当您需要在运行项目之前构建项目时,这种情况才会变得模糊。然后,您的一些构建依赖项可能被放置在
    依赖项中,而不是
    devdependences
    。我确信有一种更专业的方法来管理这一点,但我就是这样做的。

    r当然,您会按照这里提到的所有内容进行操作:“我已经清除了npm缓存”-确切地说,是如何做到的?请回答您的问题并向我们展示您的
    包.json
    。你的
    节点\u模块/
    被跟踪了吗(不应该跟踪)?我在问题中添加了package.json。当然,你会像这里提到的那样遵循所有这些:“我已经清除了npm缓存”-如何,准确地说?请回答您的问题并向我们展示您的
    包.json
    。你的
    node\u modules/
    被跟踪了吗(不应该跟踪)?我在问题中添加了package.json。是的,你是正确的。我改变了依赖关系,安装了
    npm
    node server.js
    ,效果很好。谢谢。是的,你说得对。我改变了依赖关系,安装了
    npm
    node server.js
    ,效果很好。非常感谢。
    {
      "name": "SCOGEAgent",
      "version": "0.0.0",
      "description": "A simple Blockstack app",
      "main": "index",
      "scripts": {
        "browserify": "browserify requires.js -o public/bundle.js",
        "start": "run browserify & node server.js"
      },
      "repository": {
        "type": "git",
        "url": "git+https://github.com/blockstack/hello-blockstack.git"
      },
      "author": "",
      "license": "MIT",
      "bugs": {
        "url": "https://github.com/blockstack/hello-blockstack/issues"
      },
      "homepage": "https://github.com/blockstack/hello-blockstack#readme",
      "devDependencies": {
        "browserify": "^14.1.0",
        "express": "^4.16.4",
        "opn": "^4.0.2"
      },
      "dependencies": {
        "browserify": "^14.1.0",
        "express": "^4.16.4",
        "opn": "^4.0.2",
        "@types/node": "^11.13.0",
        "blockstack": "^18.0.4",
        "express-ws": "^4.0.0",
        "json-pointer": "^0.6.0",
        "react-router-dom": "^5.0.0",
        "socket.io": "^2.2.0",
        "socket.io-client": "^2.2.0",
        "websocket-stream": "^5.5.0"
      }
    }