[英]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.