Индексная страница не отображается с новыми сохраненными данными

Я использую следующие технологии и версии фреймворков:

  • Couchbase: Enterprise Edition 6.0.1 сборка 2037 ‧ IPv4
  • Узел: v10.15.3
  • Экспресс: v4.16.4

Я новичок в этих технологиях и фреймворках.

Я делаю простое приложение с 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 Метод выброса: только стоимость Разрешение конфликта: порядковый номер Уплотнение: не активно

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
44
1

Ответы 1

попробуйте использовать код состояния 205 в ответе HTTP, это означает сброс содержимого, но это будет полезно, если вы используете браузер Google Chrome.

потому что остальная часть браузера обрабатывает код 205, например 200, оба являются успешными, но без сброса содержимого

вы можете получить больше информации о 205 из этого связь

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

Manó Dávid Lóth 20.03.2019 13:40

Другие вопросы по теме