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端口。 您不必显式指定端口。