簡體   English   中英

Express TypeError:無法讀取未定義的屬性“ get”

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

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