Я пытаюсь отправить основную c форму. Но когда я нажимаю кнопку «Зарегистрироваться» в веб-форме, я получаю только _id, дату и __v в моем mongodb, но остальная информация не отправляется. Однако, когда я использую почтальона, все работает нормально.
Когда я также пытаюсь использовать res.status (301) .redirect ('mypage'), он загружается навсегда, не отправляя никаких данных.
Я уже давно этим занимаюсь. Мы будем очень благодарны за любую помощь / направление. Спасибо.
User. js
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var UserSchema = new Schema({
firstName: { type: String },
lastName: { type: String },
email: { type: String },
phone: { type: String },
pass: { type: String },
date: { type: Date, default: Date.now },
});
module.exports = User = mongoose.model("Loggers", UserSchema);
handleUsers. js
var express = require("express"),
cors = require("cors"),
bodyParser = require("body-parser"),
bcrypt = require("bcrypt"),
jwt = require("jsonwebtoken"),
myUser = require("../models/User");
var routes = express.Router();
routes.use(cors());
process.env.SECRETE_KEY = "secrete";
routes.use(express.static("public"));
routes.use(bodyParser.urlencoded({ extended: true }));
//getting home page
routes.get("/", function (req, res) {
res.render("home");
});
//getting register
routes.get("/signup", function (req, res) {
res.render("signup");
});
//posting data to mongodb
routes.post("/signup", function (req, res) {
var positiveMessage = "User added successfully!";
var negativeMessage =
"User already exists: please login or use a different email";
var today = new Date();
var userData = {
firstName: req.body.firstName,
lastName: req.body.lastName,
email: req.body.email,
phone: req.body.phone,
pass: req.body.pass,
created: today,
};
myUser
.findOne({ _id: req.params._id, email: req.body.email })
.then((user) => {
if (!user) {
bcrypt.hash(req.body.pass, 10, function (err, hash) {
(userData.pass = hash),
myUser
.create(userData)
.then((user) => {
console.log(user);//displaying info on the console
res.status(301).redirect("login", { positiveMessage });
})
.catch((err) => {
res.json({ "Error: ": err });
});
});
} else {
res.render("signup", { negativeMessage });
}
}).catch((err) => {
res.json({ "Error: ": err });
});
});
module.exports = routes;
signup.hbs
<form action="/signup" method="POST" enctype="multipart/form-data">
<div class="form-col">
<div class="form-group col-md-4">
<label for="inputFirstName4">First Name: <b>*</b></label>
<input class="form-control" type="text" name="firstName"
id="inputFirstName4"placeholder="Enter First Name"
required />
</div>
<div class="form-group col-md-4">
<label for="inputLastName4">Last Name: <b>*</b></label>
<input class="form-control" type="text" name="lastName"
id="inputLastName4"placeholder="Enter Last Name"
required />
</div>
<div class="form-group col-md-4">
<label for="inputEmail4">Email: <b>*</b></label>
<input type="email" class="form-control" id="inputEmail4"
name="mail" placeholder="Email" required>
</div>
<div class="form-group col-md-4">
<label for="inputPhone4">Phone: <b>*</b></label>
<input class="form-control" id="inputPhone4" type="phone"
name="phone" placeholder="Enter Phone"required />
</div>
<div class="form-group col-md-4">
<label for="inputPassword4">Password: <b>*</b></label>
<input type="password" class="form-control"
id="inputPassword4" name="pass"
placeholder="Password" required />
</div>
</div>
<div class="buttons">
<button type="submit" class="btn btn-primary"
id="b1">Register</button>
<a href="/login" class="btn btn-primary" type="submit"
id="b">Login Instead</a>
</div>
</form>
Пример вывода с помощью веб-формы
{
_id: 5f0daccfc1b6414e34b0bcc4,
date: 2020-07-14T13:02:07.789Z,
__v: 0
}