Heroku nodejs教程无法在本地获取/冷却

下面是我的package.json文件的依赖关系,我添加了“cool-ascii-faces。然后我需要更新我的index.js文件来获取/ cool页面,这样每次刷新时我都会看到一个ascii的脸。我得到一个404错误,它说'不能GET /酷'

"dependencies": { "ejs": "2.3.3", "express": "4.13.3", "cool-ascii-faces": "~1.3" } 

下面是我的index.js文件,调用声明很酷

 var cool = require('cool-ascii-faces'); var express = require('express'); var app = express(); app.set('port', (process.env.PORT || 5000)); app.use(express.static(__dirname + '/public')); // views is directory for all template files app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.get('/cool', function(request, response) { response.render('pages/index') }); app.get('/cool', function(request, response) { response.send(cool()); }); app.listen(app.get('port'), function() { console.log('Node app is running on port', app.get('port')); 

然后我运行npm install来更新依赖关系,然后运行heroku local,但是得到了404错误。

任何帮助正确的方向将是伟大的!

由于模块依赖性错误,您在启动节点Web服务器时可能会遇到exception。

检查你的命令/terminal窗口。 如果您看到指向您的module.js文件的红色警告消息,则有一个例外:

 $ heroku本地
放弃| 在端口5000上启动web.1
 web.1 |  module.js:341

在这种情况下, 您需要安装cool-ascii-faces模块 。 在你的“node-js-getting-started”目录中,使用下面的npm命令来安装: $ npm i -S cool-ascii-faces

另外…你会想要将您的索引页面路线转换回'/' 。 你的路线逻辑应该是这样的:

 app.get('/', function(request, response) { response.render('pages/index') }); app.get('/cool', function(request, response) { response.send(cool()); }); 

否则,当您点击“/ cool”路线而不是笑脸时,您将始终获得默认的“网页/索引”页面。

你不必包括

  app.set('port', (process.env.PORT || 5000)); app.listen(app.get('port'), function() { console.log('Node app is running on port', app.get('port')); } 

Heroku将运行“npm start”来启动服务器并dynamicselect端口。 您不必显式指定端口。