Dilion Smith
Dilion Smith

Reputation: 31

How do you get express to work on Heroku app?

I have a app on Heroku and when I run node server.js it's throwing a error and saying Error: Cannot find module 'express'.

I've cleared the npm cache, rebuilt the app, checked the package.json & dependencies. Nothing much is working for me and I'm just looking for solutions now.

    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)

Trying to get the app to start.

Here's the package.json

{
  "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"
  }
}

Upvotes: 0

Views: 48

Answers (1)

Spidy
Spidy

Reputation: 40002

Express should be in your dependencies not devDependencies. Here's how you know where to put your third-party dependencies.

  • Does the app need the dependency to run? Put it in dependencies
  • Does the app need the dependency to build, test, lint, or any other task for development? Put it in devDependencies.

The only time this gets fuzzy is when you need to build the project before you run it. Then some of your build dependencies might be placed in dependencies instead of devDependencies. I'm sure there is a more professional way to manage this but that's how I do it.

Upvotes: 2

Related Questions