mongodb 如何使用HTML表单创建mongoose用户

yv5phkfx  于 2022-11-22  发布在  Go
关注(0)|答案(1)|浏览(110)

我正在使用MERN-stack编写Web应用程序。我已经使用mongoose创建了User模式(模式和模型),并使用expressJS来设置环境。我可以连接到MongoDB,还可以通过在.js文件中硬编码来添加新用户(使用const newUser = new User({...}),然后使用newUser.save())。但是,我正在努力从HTML文件中的表单发送信息,以便用户可以在MongoDB中创建新的User条目(创建一个帐户)。每当我点击提交时,什么都没有发生,也没有任何东西被记录到控制台。
正如前面所解释的,我已经通过硬编码用户来添加来测试了与MongoDB的连接,它工作正常(post,get,put和delete所有工作)。但是,表单没有任何React。如果有用的话,我在post的末尾提供了User模式。这是我的ejs文件。

HTML表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Load-In Road</title>
</head>
<body>
    <form action="/api/user" method="POST">
        <div>
            <label for="">Username:</label>
            <input type="username" name="username" placeholder="Username">
        </div>
        <div>
            <label for="">Email:</label>
            <input type="email" name="email" placeholder="Email">
        </div>
        <div>
            <label for="">Password:</label>
            <input type="password" name="password" placeholder="Password">
        </div>
        <div>
            <input type="submit" value="Submit">
        </div>
    </form>
</body>
</html>

快速应用程序发布

app.post("/api/user", (req, res) =>
{
  const user = new User(
    {
      username: req.body.username,
      email: req.body.email,
      password: req.body.password,
      is_broker: req.body/is_broker,
    }
  );

  user.save()
  .then((result) =>
  {
    console.log("User created");
  })
  .catch((err) =>
  {
    console.log(err);
  });
});

用户方案

const userSchema = new Schema(
{
    username:
    {
    type: String,
    required: [true, "Error: username is required"],
    unique: false
    },
    email:
    {
    type: String,
    required: [true, "Error: email is required"],
    unique: true
    },
    password:
    {
    type: String,
    required: [true, "Error: password is required"],
    unique: false
    },
    is_broker:
    {
    type: Boolean,
    required: [true, "Error: client type is required"],
    unique: false
    },
});
u3r8eeie

u3r8eeie1#

请尝试在html表单action属性中提供完整的url。例如,如果服务器正在监听您计算机的端口3000:http://localhost:3000/api/user

相关问题