Express TypeError:无法读取未定义的属性“ get”

时间:2019-02-27 06:30:20

标签: javascript html node.js express

我将路线重构到一个单独的文件夹中

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。

重要的是,该错误出在所有4个路由文件中,由于它是第一个,所以我恰好在索引文件中得到了错误。

1 个答案:

答案 0 :(得分:0)

我相信这是因为您使用的是Express which doesn't include express.Router()的3.x版本(因此,其在路由文件中的所有后续使用均无效)。我鼓励您升级到当前版本4.x,该版本已得到积极维护。