“无法获取/”-在Heroku上部署Node.js项目

时间:2020-04-12 11:24:25

标签: javascript node.js heroku

我创建了一个简单的应用,以学习有关node.js的一些知识。在我的localhost上,它像预期的一样工作,没有错误。

当我尝试将项目推送到heroku时,出现以下错误(通过运行heroku logs):

2020-04-12T10:37:36.270547+00:00 heroku[router]: at=info method=GET path="/" 
host=myproject.herokuapp.com request_id=4d9d211f-cb87-473e-8149-a827b407336d fwd="83.135.100.19" 
dyno=web.1 connect=0ms service=10ms status=404 bytes=360 protocol=https

我的服务器看起来像这样

app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(path.resolve('./public')));
app.use(cookieParser());

app.use('/', routes);

app.listen(process.env.PORT, () => {
  console.log(`Server is listening on port ${process.env.PORT}`);
})

路由文件(在routes/index.js下)如下

const router = require('express').Router();
const newsController = require('../controllers/newsController');
const quotesCookie = require('./../middleware/quotesCookie');

router.get('/', quotesCookie, newsController.renderHome);
router.get('/category/:category/:page', newsController.renderCategory);
router.get('/search',  newsController.renderSearch);
router.get('/sources', newsController.renderSources);
router.get('/*', newsController.renderError);

module.exports = router;

我在heroku仪表板中将config vars设置为我的.env文件的变量,所以我不知道为什么这不起作用。我的public文件夹仅包含一些静态图像,因此我将其添加到git中并且不会忽略它。日志仅显示上述错误。

我想这和往常一样,我缺少明显的东西。有人知道吗? 预先感谢。

1 个答案:

答案 0 :(得分:0)

我在您的路线中看到一个中间件quotesCookies。请尝试将其删除并使用以下行

router.get('/', newsController.renderHome);`

希望它会起作用。您可以通过检查控制器功能newsController.renderHome上的代码并放一些console.log()来查看其确切功能,并使用heroku logs --tail来查看传入的内容,从而进行更多检查。