Я использую следующие технологии и версии фреймворков:
Я новичок в этих технологиях и фреймворках.
Я делаю простое приложение с Node + Express и использую Couchbase для сохранения данных. Приложение о курсах и студентах, а также о том, какие студенты выбирают какие курсы и какие курсы посещают какие студенты. Все работает нормально, могу Сохранить, Удалить, ищу детали, только у меня есть небольшая проблема:
Я сохраняю новые данные (не имеет значения, находятся ли они на маршруте курса или на маршруте студентов), после чего мое приложение перенаправляется на индексную страницу и предполагает отображение всех курсов или студентов. Он показывает ранее сохраненных студентов или курсы, но не содержит вновь сохраненного студента или курса. Когда я обновляю страницу (F5), она показывает только что сохраненного студента или курс. Он должен показывать только что сохраненного студента или курс без обновления индексной страницы.
вот мой код
как я сохраняю в БД и перенаправляю на маршрут /courses:
//save new course in the db than redirect to index page
app.post("/courses", function(request, response) {
var course = new CourseModel({
"name": request.body.name
});
course.save(function(error, result) {
if (error) {
return response.status(401).send({ "success": false, "message": error});
}
response.redirect("/courses");
});
});
и вот как выглядит маршрут /courses:
//get all courses and render index page
app.get("/courses", function(request, response) {
CourseModel.find({}, {load: ["students"]}, function(error, result) {
if (error) {
return response.status(401).send({ "success": false, "message": error});
}
response.render("courses/index", {results: result});
});
});
Поэтому, когда я нажимаю кнопку СОХРАНИТЬ, она должна сохраняться в базе данных, а затем перенаправляться на страницу /courses, где она должна отображать индексную страницу, содержащую недавно сохраненный курс или студента, но это не так. Но после обновления страницы только что сохраненный курс или студент есть.
Так почему же вновь сохраненные данные не отображаются сразу на главной странице? Что я должен изменить?
Мой сервер Couchbase работает локально на моем компьютере с такими настройками кластера и корзины:
Тип: Диван Квота оперативной памяти: 512 МБ Квота оперативной памяти кластера: 4,1 ГБ Реплики: 1 Серверные узлы: 1 Метод выброса: только стоимость Разрешение конфликта: порядковый номер Уплотнение: не активно





попробуйте использовать код состояния 205 в ответе HTTP, это означает сброс содержимого, но это будет полезно, если вы используете браузер Google Chrome.
потому что остальная часть браузера обрабатывает код 205, например 200, оба являются успешными, но без сброса содержимого
вы можете получить больше информации о 205 из этого связь
если я изменю ответ в app.get следующим образом: response.status(205).render... (я использую Chrome), экран не изменится, однако в Inspect/Network я вижу, что почтовый запрос был отправлен , чем перенаправить на /courses, но на экране ничего не происходит.