无法在Heroku上成功执行Node.js应用程序(每次崩溃)

我试图把Heroku上的一个示例node.js应用程序放在一起,基本上按照他们的说明在这里: https : //devcenter.heroku.com/articles/nodejs

该应用程序运行良好,本地foreman start ,但是,每次我部署应用程序崩溃。 我究竟做错了什么?

我的Procfile包含:

 web: node web.js 

我的package.json包含:

 { "name": "testapp", "version": "0.0.1", "engines": { "node": "0.6.15" , "npm": "1.1.9" } , "dependencies": { "tower": "0.4.0-12" } } 

我的web.js包含:

 var express = require('express'); var app = express.createServer(express.logger()); app.get('/', function(request, response) { response.send('Hello World!'); }); var port = process.env.PORT || 3000; app.listen(port, function() { console.log("Listening on " + port); }); 

该应用程序部署和启动,但每次崩溃。 我从应用程序看到的日志输出是:

 2012-04-27T20:21:31+00:00 heroku[web.1]: State changed from created to starting 2012-04-27T20:21:37+00:00 heroku[web.1]: Starting process with command `node web.js` 2012-04-27T20:21:38+00:00 app[web.1]: 2012-04-27T20:21:38+00:00 app[web.1]: node.js:201 2012-04-27T20:21:38+00:00 app[web.1]: throw e; // process.nextTick error, or 'error' event on first tick 2012-04-27T20:21:38+00:00 app[web.1]: ^ 2012-04-27T20:21:38+00:00 app[web.1]: Error: Cannot find module 'express' 2012-04-27T20:21:38+00:00 app[web.1]: at Function._resolveFilename (module.js:332:11) 2012-04-27T20:21:38+00:00 app[web.1]: at Function._load (module.js:279:25) 2012-04-27T20:21:38+00:00 app[web.1]: at Module.require (module.js:354:17) 2012-04-27T20:21:38+00:00 app[web.1]: at require (module.js:370:17) 2012-04-27T20:21:38+00:00 app[web.1]: at Object.<anonymous> (/app/web.js:1:77) 2012-04-27T20:21:38+00:00 app[web.1]: at Module._compile (module.js:441:26) 2012-04-27T20:21:38+00:00 app[web.1]: at Object..js (module.js:459:10) 2012-04-27T20:21:38+00:00 app[web.1]: at Module.load (module.js:348:31) 2012-04-27T20:21:38+00:00 app[web.1]: at Function._load (module.js:308:12) 2012-04-27T20:21:38+00:00 app[web.1]: at Array.0 (module.js:479:10) 2012-04-27T20:21:39+00:00 heroku[web.1]: Process exited with status 1 2012-04-27T20:21:40+00:00 heroku[web.1]: State changed from starting to crashed 2012-04-27T20:30:01+00:00 heroku[router]: Error H10 (App crashed) -> GET testapp.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 

看起来你需要在你的web.js中明确表示,那么为什么你不把expression式添加到你的依赖呢? 您的本地副本可能已经快速安装,这就是为什么你没有得到任何错误。 塔可能需要快递,但是,您不能直接访问快递,它是塔目录中的子模块,而不是您的应用程序目录中的子模块。

过去,这是一个npm版本的问题。 我会build议升级到最新版本,并重新安装至lessexpression。

检查你没有在package.json的devDependencies中定义的express。 如果你这样做,甚至运行npm install express --save不会将其移动到依赖关系。

我用vue-cli创build了Vue.js项目,并在devDependencies下添加了express dep。