Если вам нужно получить одинаковые данные формы для всех запросов (независимо от того, откуда они сделаны), то возможный обходной путь может быть следующим:
1) Сохраните исходные данные формы (возможно, пустые) в базе данных, получите ObjectId и жестко закодируйте его в своем коде, таким образом, все обновления будут сделаны только для этого конкретного документа MongoDB.
2) Маршрут формы (ниже единицы) ничего не должен делать, кроме как для обслуживания файла, который имеет форму
app.get('/form1', function (req, res) {
res.sendFile(__dirname + '/public');
//record.find({"_id": ObjectId("MLAB ID")})......dont do this
});
3) Должен быть другой маршрут, который отправляет данные формы
app.get('/getdata', function(req, res) {
record.find({"_id": ObjectId("MLAB ID")}, function(err, doc) {
res.send(doc)
})
});
4) Статический файл, который вы отправляете клиенту, должен иметь функцию javascript, которая запрашивает данные формы, как только загружается ваше окно, а затем устанавливает значение элементов ввода из полученных данных:
window.onload = function() {
//make a GET request to /getdata to get form data....store it in obj
//then set the input values
document.getElementById("yourchoice").value = obj.yourchoice;
//and set the value of other input fields ....in similar amnner
}
5) Запрос POST, который вы делаете, должен обновить этот конкретный документ (findOneAndUpdate ??)
Недостаток этого метода:
Для одной операции мы запрашиваем файл с сервера, а затем другой запрос для получения данных формы, поэтому два запроса для одной операции, так как мы не можем использовать оба res.sendFile () и res.json () вместе ... в одну сторону Чтобы обойти это, нужно скрыть данные формы в HTML-документе, используя шаблонизатор. Больше об этом можно легко найти. В любом случае вышеупомянутый метод решает вашу цель.
Надеюсь, я правильно понял формулировку проблемы.
Удачного кодирования !!
Редактировать: Хотя вышеупомянутые пункты являются пояснительными, я написал примерный фрагмент по адресу: https://pastebin.com/AvgVyx7b
Отлично работает