3

我在其他页面和论坛中检查了很多答案,但我仍然不明白。我做错了什么?帮我

*已编辑。我添加了要求路线和 app.use。看起来函数 isLOGgedIn 没有导出,但我不知道该怎么做。我在另一个应用程序中确实喜欢这个,它在那里工作。

auth-routes.js

const express = require("express"),
  router      = express.Router(),
  passport    = require("passport")

function isLoggedIn(req, res, next) {
  if (req.isAuthenticated()) {
    return next()
  }

  res.redirect("/auth/login")
}

module.exports = router

用户路由.js

const express  = require("express"),
  router = express.Router(),
  authRoutes = require("./auth-routes")   

router.get("/profile", authRoutes.isLoggedIn, (req, res) => {
  res.render("user/profile", {user: req.user})
})

module.exports = router

请求路由

const titleRoutes = require("./routes/title-routes")
const authRoutes = require("./routes/auth-routes")
const userRoutes = require("./routes/user-routes")   

应用程序使用

app.use(titleRoutes)
app.use("/auth", authRoutes)
app.use("/user", userRoutes)
4

1 回答 1

5

auth-routes.js您不导出isLoggedIn. 所以在user-routes.jsauthRoutes.isLoggedInundefined

你可以改变:

module.exports = router

进入:

exports.isLoggedIn = isLoggedIn

或使用module.exports

module.exports = { isLoggedIn: isLoggedIn }

了解 nodejs 中导出的有用链接https://www.sitepoint.com/understanding-module-exports-exports-node-js/

于 2019-12-27T21:59:33.863 回答