Не удается создать новый документ на ПОЧТЕ (мангуст/экспресс)

#javascript #node.js #database #express #mongoose

Вопрос:

Проверьте Мой Node.js код Пожалуйста, я хочу сохранить данные страницы контактов в компасе мангуста это не вызывает никаких ошибок, но и не сохраняет данные

lt;form action="/" class="contact_form grid" method="POST"gt;

HTML НАПИСАН АБСОЛЮТНО ПРАВИЛЬНО, Я ДУМАЮ, ПОЖАЛУЙСТА, СКАЖИТЕ МНЕ, ЧТО В ЭТОМ НЕ ТАК APP.JS КОД

 const express = require('express');  const mongoose = require('mongoose');  const app = express();  const bodyparser = require('body-parser')  const path = require('path');  mongoose.connect('mongodb://localhost:27017/ContactPage');  const port = 3000;    var contactSchema= new mongoose.Schema({  name:{type:String},   email:{type:String},   project:{type:String},   message:{type:String}  });  var Contact = mongoose.model('Contact', contactSchema);  module.exports = Contact;    app.use('/static', express.static('static')) // For serving static files  app.use(express.urlencoded({extended: true}))    app.set('view engine', 'ejs');  app.get('/', function(req,res){  res.sendFile(path.join(__dirname, "index.html"))  });  app.post('/',(req,res)=gt;{  var myData = new Contact(req.body);  myData.save().then(()=gt;{  res.send(req.body)  }).catch(()=gt;{  res.status(400).send(req.body);  });  });        app.listen(port, () =gt; {  console.log(`Example app listening at http://localhost:${port}`)  })  

Проверьте Мой Node.js код Пожалуйста, я хочу сохранить данные страницы контактов в компасе мангуста это не вызывает никаких ошибок, но и не сохраняет данные

 lt;form action="/" class="contact_form grid" method="POST"gt;  lt;div class="contact_inputs grid"gt;  lt;div class="contact_content"gt;  lt;label for="" class="contact_label"gt;Namelt;/labelgt;  lt;input type="text" name= "name" class="contact_input"gt;  lt;/divgt;  lt;div class="contact_content"gt;  lt;label for="" class="contact_label"gt;Emaillt;/labelgt;  lt;input type="email"name="email" class="contact_input"gt;  lt;/divgt;  lt;/divgt;   lt;div class="contact_content"gt;  lt;label for="" class="contact_label"gt;Projectlt;/labelgt;  lt;input type="text" name="project" class="contact_input"gt;  lt;/divgt;  lt;div class="contact_content"gt;  lt;label for="" class="contact_label"gt;Messagelt;/labelgt;  lt;textarea name="" id="" cols="0" rows="7" name = "message" class="contact_input"gt;lt;/textareagt;  lt;/divgt;  lt;divgt;  lt;a href="" class="button button--flex"gt;  Send Message  lt;i class="fas fa-paper-plane button_icon"gt;lt;/igt;  lt;/agt;  lt;/divgt;  lt;/formgt;  

Комментарии:

1. Нет необходимости КРИЧАТЬ

2. Сработал ли с вами ответ

Ответ №1:

#1 вы отправляете не из HTML, поэтому вместо:

 lt;divgt;  lt;a href="" class="button button--flex"gt;  Send Message  lt;i class="fas fa-paper-plane button_icon"gt;lt;/igt;  lt;/agt; lt;/divgt;  

писать:

 lt;button type="submit"gt;  Send Message lt;/buttongt;  

#2 явные улучшения

Файл contactSchema:

 const mongoose = require('mongoose') var contactSchema = new mongoose.Schema({  name: { type: String },  email: { type: String },  project: { type: String },  message: { type: String } });  module.exports = mongoose.model('Contact', contactSchema);  

файл приложения:

 const express = require('express'); const mongoose = require('mongoose'); const bodyparser = require('body-parser') const path = require('path');  const port = 3000; const app = express();  app.use('/static', express.static('static')) // For serving static files app.use(express.urlencoded({ extended: true }))  app.set('view engine', 'ejs');  app.get('/', function (req, res) {  res.sendFile(path.join(__dirname, "index.html")) });  app.post('/', (req, res) =gt; {  var { name, email, project, message } = req.body;   var myData = new Contact({  name,  email,  project,  message,  });   myData.save().then((newData) =gt; {  res.send(newData)  }).catch((err) =gt; {  res.status(400).send("Error: ", err, " , Data: ", req.body);  }); });  app.listen(port, () =gt; {  mongoose.connect('mongodb://localhost:27017/ContactPage')  .then(() =gt; console.log("Server amp; DB listening at http://localhost:${port}"))  .catch(err =gt; console.log(err)); })