[英]Express TypeError: Cannot read property 'get' of undefined
我將路線重構到一個單獨的文件夾中:
server.js:
var express = require("express"), parse = require("body-parser"), db = require("mysql"), mailer = require("nodemailer"), redirectToHTTPS = require("express-http-to-https").redirectToHTTPS, app = express(); var indexRoutes = require("./routes/index"), deviceRoutes = require("./routes/devices"), locationRoutes = require("./routes/locations"), organizationRoutes = require("./routes/organizations"); app.use(parse.urlencoded({extended: true})); app.set("view engine", "ejs"); app.use(express.static(__dirname + "/public/")); app.use(redirectToHTTPS([/localhost:(\\d{4})/], [/\\/insecure/], 301)); //---------------------------------ROUTING-------------------------------------- app.use("/", indexRoutes); app.use("/devices", deviceRoutes); app.use("/locations", locationRoutes); app.use("/organizations", organizationRoutes); //-------------------------------SERVER INIT------------------------------------ app.listen(process.env.PORT, process.env.IP, function(){ console.log("Server initiated (port " + process.env.PORT + ")..."); });
index.js(我的索引路由所在的位置):
var express = require("express"); var router = express.Router(); //------------------------------------------------------------------------------ router.get("/", function(req, res){ res.render("home"); }); //------------------------------------------------------------------------------ module.exports = router;
但,
我收到一個TypeError:
無法讀取未定義的屬性“ get”
我不知道發生了什么,因為我從事的上一個項目具有完全相同的處理方式,沒有任何問題。 我正在使用Express 3.21.2。
需要特別注意的是該錯誤是所有四個路由文件中的錯誤,因為它是第一個錯誤,所以我恰好在索引文件中得到了錯誤。
我相信這是因為您正在使用Express 3.x版, 其中不包含express.Router()
(因此,其在路由文件中的所有后續使用均無效)。 我鼓勵您升級到當前版本4.x,該版本已得到積極維護。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.