内部服务器错误节点js

时间:2017-07-03 15:36:25

标签: javascript node.js express heroku

我目前正在设置Heroku部署。当它在本地运行时一切正常但我从Heroku得到以下错误。

at=info method=GET path="/" host=pure-cliffs-68507.herokuapp.com 
request_id=66cd6aa8-209d-4065-88ce-ad201ce6e713 fwd="210.86.90.97" 
dyno=web.1 connect=0ms service=24ms status=500 bytes=524 protocol=https
2017-07-03T15:05:22.180020+00:00 app[web.1]: GET / 500 19ms - 148b
2017-07-03T15:05:22.181519+00:00 app[web.1]: Error: Failed to lookup view " index.html" in views directory "/app"
2017-07-03T15:05:22.181520+00:00 app[web.1]:     at EventEmitter.render (/app/node_modules/express/lib/application.js:580:17)
2017-07-03T15:05:22.181521+00:00 app[web.1]:     at ServerResponse.render  (/app/node_modules/express/lib/response.js:971:7)
2017-07-03T15:05:22.181521+00:00 app[web.1]:     at /app/routes.js:8:7
2017-07-03T15:05:22.181522+00:00 app[web.1]:     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2017-07-03T15:05:22.181522+00:00 app[web.1]:     at next (/app/node_modules/express/lib/router/route.js:137:13)
2017-07-03T15:05:22.181523+00:00 app[web.1]:     at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3)
2017-07-03T15:05:22.181523+00:00 app[web.1]:     at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2017-07-03T15:05:22.181524+00:00 app[web.1]:     at /app/node_modules/express/lib/router/index.js:281:22
2017-07-03T15:05:22.181525+00:00 app[web.1]:     at Function.process_params (/app/node_modules/express/lib/router/index.js:335:12)
2017-07-03T15:05:22.181525+00:00 app[web.1]:     at next (/app/node_modules/express/lib/router/index.js:275:10)

我相信它与文件路径有关。我目前拥有基本目录中的所有内容(即项目/),因此使用以下内容。

app.use(express.static(path.join(__dirname, '/')));
app.set('views', __dirname);

以下是我的部分要求

app.get('/', function(req, res) {
    res.render('index.html'); 
});

app.get('/browsePage', function(req, res) {
    res.render('browsePage.html'); 

});

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

您无法在html中呈现node.js个网页。您可以尝试发送html个文件:

app.get('/', function(req, res) {
   res.sendFile('index.html'); 
});

app.get('/browsePage', function(req, res) {
   res.sendFile('browsePage.html'); 
});

答案 1 :(得分:1)

  

无法在视图目录“/ app”

中查找视图“index.html”

如果您的代码在本地工作,您是否可以再次检查您的路径? 它应该是:

app.use(express.static(__dirname + '../public'));
不过,你应该使用任何模板来渲染视图(jade,..)https://pugjs.org/api/getting-started.html