Первый и второй входные данные из формы возвращают «ноль» - PullRequest
0 голосов
/ 28 октября 2018

Итак, в основном я хочу создать форму, которая собирает информацию о пользователе и сохраняет ее в базе данных.Проблема в том, что 'fname' и 'name' (первые 2 входа из формы) по какой-то причине возвращают 'null', даже если они были заполнены текстом.Проблема в том, что я не могу добавить другого пользователя из-за того, что уже есть пользователь с данными 'lname' и 'fname' - в данном случае 'null'.Самым странным для меня является то, что другие входные данные, похоже, не имеют никаких проблем вообще.Приветствуется любая помощь / предложение.

Мой user.js Модель:

var mongoose = require("mongoose");

var UserSchema = new mongoose.Schema({
   firstName: {type: String, unique:true},
   lastName: {type: String, unique:true},
   email: {type: String, unique: true},
   hasVoted: {type: Boolean, default: false}
});


module.exports = mongoose.model("User", UserSchema);

Моя форма:

<!DOCTYPE html>
<html>
    <head>
        <title>POll</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
        <link rel="stylesheet" href="/stylesheets/landing.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" type="text/javascript" async></script>
    </head>
    <body>



<div class="row">
    <div style="width: 30%; margin: 25px auto;">
        <form action="/" method="post">
            <div class="form-group">
                <input class="form-control" type="text" name="fname" placeholder="First Name">
            </div>
            <div class="form-group">
                <input class="form-control" type="text" name="lname" placeholder="Last Name">
            </div> 
            <div class="form-group">
                <input class="form-control" type="text" name="email" placeholder="Email">
            </div>
            <div class="form-group">
                <textarea class="form-control" name="comment">Comment(Optional)</textarea>
            </div>
            <div class="form-group">
                <input type="submit" value="Submit">
            </div>
        </form>
    </div>
</div>

Мои маршруты и создание mongodb

var express = require("express");
var router = express.Router();
var User = require("../models/user");

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

router.post("/", function(req, res){
    // get data from form and add to campgrounds array
    var fname = req.body.fname;
    var lname = req.body.lname;
    var email = req.body.email;
    var comment = req.body.comment;
    var newUser = {fname: fname, lname: lname, email: email, comment: comment};
    // Create a new campground and save to DB
    User.create(newUser, function(err, newlyCreated){
        if(err){
            console.log(err);
        } else {
            console.log(newlyCreated);
            //redirect back to campgrounds page
            res.redirect("/", {user: newlyCreated});
        }
    });
})

module.exports = router;

1 Ответ

0 голосов
/ 28 октября 2018

Не должно ли это:

var newUser = {fname: fname, lname: lname, email: email, comment: comment};

будь таким:

var newUser = {firstName: fname, lastName: lname, email: email, comment: comment};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...