Ich habe versucht, ein Formular zum Übermitteln an die Datenbank zu erhalten, aber jedes Mal, wenn ich es einreiche, speichert es nur eine ID.Formular wird nicht in MongoDB gespeichert
Unten ist mein Code in meiner app.js-Datei für die Post-Route, die das Formular übermittelt.
// CREATE add new startup to database
app.post("/startup-submit", function(req, res) {
// Get data from form
var startupname = req.body.startupname;
var url = req.body.url;
var shortdescription = req.body.shortdescription;
var longdescription = req.body.longdescription;
var techstack = req.body.techstack;
var foundeddate = req.body.foundeddate;
var blog = req.body.blog;
var twitter = req.body.twitter;
var facebook = req.body.facebook;
var linkedin = req.body.linkedin;
var email = req.body.email;
var foundername = req.body.foundername;
var foundersocialmedia = req.body.foundersocialmedia;
//Pass data through to page
var newStartup = {
startupname:startupname,
url: url,
shortdescription: shortdescription,
longdescription: longdescription,
techstack: techstack,
foundeddate: foundeddate,
blog: blog,
twitter: twitter,
facebook: facebook,
linkedin: linkedin,
email: email,
foundername: foundername,
foundersocialmedia: foundersocialmedia
};
Startup.create(newStartup, function(err, newlyCreatedStartup){
if(err){
console.log(err);
} else {
// Redirect back to show all page
res.redirect("/startups");
}
console.log(newlyCreatedStartup);
});
});
Mein Modell ich verwende ist:
var mongoose = require("mongoose");
var startupSchema = new mongoose.Schema({
about_startup: {
startup_name: String,
url: String,
short_description: String,
long_description: String,
tech_stack: String,
date_founded: Date
},
social_media: {
blog: String,
twitter: String,
facebook: String,
linkedin: String,
email: String,
},
about_founder: {
name: String,
social_media_founder: String
}
});
module.exports = mongoose.model("Startup", startupSchema);
Diese sollten richtig ausgerichtet sind, oder bin ich Basis auf diese aus? Ich bin neu in Node und Express, also war das Lernen interessant. Wie ich mich für das Modell und das Layout des Codes entschieden habe, ist meistens von einem früheren Projekt, das ich im Rahmen eines Kurses gemacht habe. Ich habe den obigen Code geschrieben, aber referenziert, ich schätze, es ist der beste Weg, es zu dem alten Code zu sagen.
Ich weiß, dass die Variablen alle ziehen die Daten, weil ich console.log (Variablenname) jeder, um es zu testen. Das Modell sieht für mich richtig aus, aber vielleicht fehlt mir etwas.
'newStartup' muss die gleichen Struktur- und Eigenschaftsnamen haben wie in' startupSchema' definiert. Sie sind derzeit sehr unterschiedlich. – JohnnyHK
Oh .. habe das nicht einmal bemerkt. Damm, ich fühle mich jetzt dumm. Ist das richtig für die Route? 'var about_founder = { foundername: req.body.foundername, foundersocialmedia: req.body.foundersocialmedia };' Formular obigen Daten = unter 'var newStartup Seite passieren {about_startup: about_startup, social_media : social_media, about_funder: about_founder}; Startup.create (newStartup, function (err, newCreatedStartup) {' –