javascript - 以下代码是使用 html、expressJS 生成 Web 表单并将提交的详细信息保存在 mongodb 中,但出现 'post' 错误, 'get' 有效

标签 javascript html node.js mongoose

当我在浏览器中访问 localhost:3000 并输入条目(姓名、电子邮件、地址)并点击提交按钮时,“post”正在 postman 那里工作,并在数据库中创建一个带有对象 id 的文档,它说无法保存并且无法在 mongo 数据库中创建对象。

html代码:

<!DOCTYPE html>
<html>
<head>
     <title>formReg</title>

</head>
     <body>

        <form name='regForm' method ='post' action ='/add'>
          username: <input type='text' name='username' required/><br>
          email: <input type='email' name='email' required/><br>
          address: <textarea rows='5' col='10' name='address'></textarea><br>
          <button type ='submit' value='submit'>submit</button>
        </form>
     </body>
</html>

这段代码是与数据库、html交互的。

 var express = require("express");


 var app = express();
 var port = 3000;

 var bodyParser = require('body-parser');

 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({extended: true}));

 var mongoose =require('mongoose');
 mongoose.Promise = global.Promise;
 mongoose.connect('mongodb://localhost:27017/node-user');

 var nameSchema = new mongoose.Schema({
   username: {type: String, unique: true},
   email:{type: String},
   address:{type: String}
 });

 var User = mongoose.model("User", nameSchema);

 app.get('/', (req, res)=>{
   res.sendFile(__dirname+'/form1.html');

 });

app.post('/add', (req, res)=>{

  var username= req.body.username;
  var email = req.body.email;
  var address = req.body.address;

  var myData = new User();
  myData.username = username;
  myData.email = email;
  myData.address = address;

  myData.save().then((item)=>{
    res.send('item saved');
  },(err)=>{
    res.status(400).send('unable to save');
  });
});
 app.listen(port, ()=>{
   console.log("server is on port "+port);
 })

最佳答案

我在这里看到两个问题:

  1. 表单字段名称为“userName”,但 mongoose 模型字段名称为“username”

  2. 地址文本区域没有 name属性 ( name="address" ),因此不会在表单中提交。

关于javascript - 以下代码是使用 html、expressJS 生成 Web 表单并将提交的详细信息保存在 mongodb 中,但出现 'post' 错误, 'get' 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45068528/

相关文章:

javascript - 手动请求模块与使用 browserify 动态调用模块有何不同?

javascript - 用行分隔符替换文本区域中的 <br/> (Javascript)

javascript - 在 Javascript 中组装 var

javascript - 提交表单后按钮颜色保持不变

javascript - Kinetic.js 加载问题

javascript - 如何使用 D3 在现有图形中添加 X 和 Y 轴

css - Windows XP 上的 Chrome、FF 和 IE 7 上的 css 中的 div 对齐

node.js - 使用 Mongoose 在 MongoDB 中创建关系(在 Node.js 中)

javascript - 在公共(public) Assets 目录中包含 .html 文件?

javascript - JS 变量未发布