我创建了一个简单的应用,以学习有关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
中并且不会忽略它。日志仅显示上述错误。
我想这和往常一样,我缺少明显的东西。有人知道吗? 预先感谢。
答案 0 :(得分:0)
我在您的路线中看到一个中间件quotesCookies。请尝试将其删除并使用以下行
router.get('/', newsController.renderHome);`
希望它会起作用。您可以通过检查控制器功能newsController.renderHome
上的代码并放一些console.log()来查看其确切功能,并使用heroku logs --tail
来查看传入的内容,从而进行更多检查。