Я использую Express.JS на Node.JS для создаваемого приложения.Я настраиваю маршруты и делаю все возможное, чтобы поддерживать архитектуру RESTful.
Каков процесс приема ввода формы, возникновения какой-либо ошибки (не обязательно ошибки проверки) и последующего показа пользователю того жеформа, но включая данные, которые они отправили на сервер в первую очередь?
Сначала я сохранял данные POST в сеансе, но никогда не казалось, что это было хорошее решение, больше похоже на взлом.
Затем я скорректировал свои маршруты и вместо этого использовал app.post|put|del()
для обработки отправки формы, затем использовал маршрут с app.all()
, который будет использоваться в качестве "универсального".По сути, если бы я столкнулся с ошибкой, я бы позвонил next()
, чтобы обработать управление обратно на мой «универсальный» маршрут.Это привело к тому, что я отклонился от своего первоначального подхода RESTful.
Теперь я настроил свои маршруты для более точного отражения подхода RESTful.Однако, если я использую app.redirect()
, данные будут потеряны при перенаправлении.Я закончил тем, что использовал что-то вроде другого хака: controller.new_form.apply(this, arguments);
(это называется в controller.create()
)
Конечно, я мог бы использовать проверку на стороне клиента, но я делаю все возможное, чтобы создатьприложение, которое сначала полностью работает на стороне сервера, а затем добавляет код на стороне клиента как способ улучшить взаимодействие с пользователем там, где оно поддерживается.
Есть ли какой-нибудь метод, доступный для express.js (или connect.js), который принимаетдействие формы для другого URI, отличного от самой формы, но позволяет мне вернуться назад без фактического перенаправления браузера, чтобы форма могла оставаться заполненной (а также отображать сообщение об ошибке) для моих пользователей?