Извините, если это глупый вопрос, я супер новичок в express и mongodb / mon goose, поэтому не уверен, что я делаю неправильно. Я пытаюсь создать несколько раскрывающихся меню, в которых пользователь может выбрать из каждого раскрывающегося списка, а затем нажать кнопку отправить, чтобы отправить запрос POST в мою базу данных. У меня получилось работать с формой, в которой вы вводите свои собственные данные, но я только хочу, чтобы пользователь мог выбрать из выпадающего списка ...
вот выпадающая форма, я пытаюсь создать запрос POST от:
<form action="/environments" method="POST"></form>
<select>
<% environments.forEach(function(environment){ %>
<option value="name"><%= environment.name %></option>
<% }); %>
</select>
<select>
<% environments.forEach(function(environment){ %>
<option value="region"><%= environment.region %></option>
<% }); %>
</select>
<input type="submit" />
</form>
вот мое приложение. js
var express = require("express"),
app = express(),
mongoose = require("mongoose"),
bodyParser = require("body-parser");
mongoose.connect("mongodb://localhost/epims", {
useNewUrlParser: true,
useUnifiedTopology: true
});
app.use(bodyParser.urlencoded({ extended: true }));
app.set("view engine", "ejs");
//schema setup
var environmentSchema = new mongoose.Schema({
name: String,
region: String
});
var Environment = mongoose.model("Environment", environmentSchema);
//DISPLAY ALL ENVIRONMENTS IN DB
app.get("/environments", function(req, res) {
//get all environments from db
Environment.find({}, function(err, allEnvironments) {
if (err) {
console.log(err);
} else {
res.render("environments", { environments: allEnvironments });
}
});
});
//POST FORM DATA TO DB
app.post("/environments", function(req, res) {
//get data from form and add to db
var name = req.body.name;
var region = req.body.region;
var newEnvironment = { name: name, region: region };
//create new env and save to db
Environment.create(newEnvironment, function(err, newlyCreated) {
if (err) {
console.log(err);
} else {
//redirect back to environments
res.redirect("/environments");
}
});
});