NodeJS Express.JS:无法发布/url或重定向到/url?

mkh04yzy  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(184)

我遇到了一个错误,我的应用程序,我试图修复,其中无论是表达将给予我'无法发布/登录'或将重定向到一个/url?页面。
我已经尝试解决这个问题,下面是我的代码:
index2.ejs:

<html>
  <%- include('partials/header.ejs'); -%>
  <body>
    <div id="top-block">
          <form id="login" method="post">
            <label>Create A Display Name...</label>
              <input type="text" id="name">
              <br><br>
              <label>Create A Profile Picture...</label>
              <input id="pfp" type="text"> 
              <br><br>
              <label>Create A Bio...</label>
              <input id="bio" type="text">
              <br><br>
              <input type="submit" formmethod="post">
              <button onclick="window.location = '/'">Back to main page</button>
          </form>

        <script>
          var user = localStorage.get('user')

          var base = "";
function getBase64(file) {
   var reader = new FileReader();
   reader.readAsDataURL(file)
   reader.onloadend = function() {
     globalThis.base = reader.result.toString()
//     document.write(globalThis.base)
   };
   reader.onerror = function (error) {
     console.log('Error: ', error);
   };
  }   

          $('#login').submit(function (e) {
          e.preventDefault();
          localStorage.setItem("uname", $('#name').val())
          localStorage.setItem("pfp", $('#pfp').val())

          localStorage.setItem("url", '/profile?pfp=' + $('#pfp').val() + '&disName=' + $('#name').val() + '&genName=' + localStorage.getItem('user') + '&bio=' + $('#bio').val())
      })
        </script>
  </body>
</html>

index2.js:

const express = require("express");
const router = express.Router();

router.get("/", function (req, res) {
    res.render("index2.ejs");
});

router.get("/", function (req, res) {
    res.render("index.ejs");
});

module.exports = router;

我的代码应该做的是当我按下按钮时重定向到'/'(索引页),但相反,它要么说它不能发布/登录,要么重定向到/登录?.所以你们有什么想法,任何帮助都很感激,谢谢。

iqxoj9l9

iqxoj9l91#

您当前在index2.js中有两个使用相同路由(“/”)和相同HTTP方法(“GET”)的路由。
这将导致冲突。确保定义一个路径来查看index2.js页面,另一个路径重定向到index.js页面。
然后通过添加action属性来修改表单,以指定发送POST请求的路由。

<form id="login" method="post" action="/login">
   <!The rest of your form-->
</form>

你的表格的其余部分,太多的东西在一起,修复这些东西,然后让我们看看它是如何进行的。

相关问题