我有一个现有的登录,我想进入一个src反应组件

问题描述 投票:0回答:1

我正在制作一个需要登录的应用程序(在下面的代码中)。我试图重构一个react组件,所以我可以在路由中使用(login - > app body)。没有关于vss的问题,但在npm开始后遇到问题。

TypeError:无法分配给对象'#'的只读属性'exports'

import React from "react";

class DynamicLogin extends React.Component {
  render() {
    return (module.exports = (app, passport) => {
      app.get("/", function(req, res) {
        res.render("index.ejs");
      });

      app.get("/login", function(req, res) {
        res.render("login.ejs", { message: req.flash("loginMessage") });
      });

      app.post(
        "/login",
        passport.authenticate("local-login", {
          successRedirect: "/profile",
          failureRedirect: "/login",
          failureFlash: true
        }),
        function(req, res) {
          if (req.body.remember) {
            req.session.cookie.maxAge = 1000 * 60 * 3;
          } else {
            req.session.cookie.expires = false;
          }
          res.redirect("/");
        }
      );

      app.get("/signup", function(req, res) {
        res.render("signup.ejs", { message: req.flash("signupMessage") });
      });

      app.post(
        "/signup",
        passport.authenticate("local-signup", {
          successRedirect: "/profile",
          failureRedirect: "/signup",
          failureFlash: true
        })
      );

      app.get("/profile", isLoggedIn, function(req, res) {
        res.render("profile.ejs", {
          user: req.user
        });
      });

      app.get("/logout", function(req, res) {
        req.logout();
        res.redirect("/");
      });
    });

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

      res.redirect("/");
    }
  }
}

export default DynamicLogin;
reactjs
1个回答
0
投票

欢迎来到stackoverflow。从我可以看到你正试图将你的EJS视图转换为反应组件。不幸的是,在React语法中包装现有的EJS代码并不简单。 React不支持你使用的逻辑,比如你通常在EJS中看到的module.exports和req / res.render。而不是EJS视图,React使用的是JSX,它与EJS类似,但与EJS不同。我建议查看Andrew Mead的React课程,以了解有关React功能的更多信息:https://www.udemy.com/react-2nd-edition/

否则,您尝试在上面集成的代码与React之间没有直接连接。

© www.soinside.com 2019 - 2024. All rights reserved.