簡體   English   中英

“無法獲取 /” - 在 Heroku 上部署 Node.js 項目

[英]“Cannot GET /” - deploy Node.js project on 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文件夾僅包含一些 static 圖像,因此我將其添加到git並且不要忽略它。 日志僅顯示上述錯誤。

我想這和往常一樣,我錯過了一些明顯的東西。 有人有想法嗎? 提前致謝。

我在您的路線中看到了一個中間件quotesCookies。 請嘗試將其刪除並使用以下行

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

希望它會奏效。 您可以通過檢查 controller function newsController.renderHome的代碼並放置一些 console.log() 來查看它到底在做什么,並可以使用heroku logs --tail

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM