Чтобы отправить данные формы, добавьте вызов jQuery Ajax в свой HTML-скрипт:
function geoFindMe() {
// get input's value
var coordinates = document.getElementById("coordinates").value;
// post coordinates to "/"
$.ajax({
type: "POST",
url: "/",
data: coordinates,
success: function() {
// do things if successful
}
});
}
Чтобы получить данные формы HTML в Express, вам необходимо использовать промежуточное программное обеспечение body-parser
. Кроме того, имя свойства объекта, к которому вы обращаетесь к данным, основано на атрибуте name
ввода HTML, а не id
.
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.post("/", (req, res) => {
const newUser = new data({
geometry: {
type:'Point',
coordinates: req.body.pos
// property is "pos" because form input name is "pos"
}
});
});
И затем, чтобы вставить данные в MongoDB через Mongoose, вы должны сделать что-то вроде этого:
newUser.save().then(() => console.log('user saved'));