簡體   English   中英

GET URL 500(內部服務器錯誤)- Heroku

[英]GET URL 500 (Internal Server Error) - Heroku

我的網站出現內部服務器錯誤

當我在控制台heroku logs -t 中寫入時,我得到了這個

2020-11-10T00:22:21.151925+00:00 app[web.1]: TypeError: view.render is not a function
2020-11-10T00:22:21.151942+00:00 app[web.1]: at tryRender (/app/node_modules/express/lib/application.js:640:10)
2020-11-10T00:22:21.151946+00:00 app[web.1]: at Function.render (/app/node_modules/express/lib/application.js:592:3)
2020-11-10T00:22:21.151946+00:00 app[web.1]: at ServerResponse.render (/app/node_modules/express/lib/response.js:1012:7)
2020-11-10T00:22:21.151947+00:00 app[web.1]: at /app/routes/index.js:35:7
2020-11-10T00:22:21.151948+00:00 app[web.1]: at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2020-11-10T00:22:21.151948+00:00 app[web.1]: at next (/app/node_modules/express/lib/router/route.js:137:13)
2020-11-10T00:22:21.151948+00:00 app[web.1]: at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3)
2020-11-10T00:22:21.151949+00:00 app[web.1]: at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
2020-11-10T00:22:21.151949+00:00 app[web.1]: at /app/node_modules/express/lib/router/index.js:281:22
2020-11-10T00:22:21.151950+00:00 app[web.1]: at Function.process_params (/app/node_modules/express/lib/router/index.js:335:12)

我的 index.js

const express = require("express");
const fs = require("fs");
const bodyParser = require("body-parser");
const router = express.Router();
const nodemailer = require("nodemailer");
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: false }));

router.get("/public/products/bags.json", function (req, res) {
  res.writeHead(200, {
    "Content-type": "application/json",
  });
  res.end(JSON.stringify(data));
});
router.get("/", function (req, res) {
  res.render("constructor", { //<---------THIS --- at /app/routes/index.js:35:7
    style: "constructor",
    bags: data,
  });
});
module.exports = router;

服務器.js

const express = require("express");
const exphbs = require("express-handlebars");
const routes = require("./routes/index");
const PORT = process.env.PORT || 3000;
const app = express();
app.use(express.static("public"));
app.engine("handlebars", exphbs({ defaultLayout: "main" }));
app.set("view engine", "handlebars");
app.use("/", routes);
app.listen(PORT);

當我使用我的網絡服務器時,它沒問題。 我怎么解決這個問題?

這是因為您的本地環境和 Heroku 環境之間的節點版本不匹配。 您應該在 package.json 中指定節點版本,讓 Heroku 知道正確的節點版本。

package.json

{
    "name": "one",
    "version": "1.0.0",
    "description": "",
    "main": "server.js",
    "dependencies": {
        "body-parser": "^1.19.0",
        "express": "^4.17.1",
        "express-handlebars": "^5.2.0",
        "jquery-pjax": "^2.0.1",
        "nodemailer": "^6.4.15",
        "path": "^0.12.7"
    },
    "devDependencies": {},
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node server.js"
    },
    "author": "",
    "license": "ISC",

    "engines": {
        "node": "14.x"
    },
}

暫無
暫無

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

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