Вопрос по http, express, node.js – Express.js получить http метод в контроллере

46

Я строю регистрационную форму (локальный паспорт как аутентификация, формы как помощник формы).

Поскольку регистрация знает только GET и POST, я хотел бы выполнить всю обработку в одной функции.

Другими словами, я ищу что-то вроде:

exports.register = function(req, res){
    if (req.isPost) {
       // do form handling
    }
    res.render('user/registration.html.swig', { form: form.toHTML() });
};

Ваш Ответ

2   ответа
80

Ответ был довольно прост

exports.register = function(req, res) {
    if (req.method == "POST") {
       // do form handling
    }
    res.render('user/registration.html.swig', { form: form.toHTML() });
};

Но я долго искал этот подход в экспресс-руководстве.

Наконец, документация узла содержит такую подробную информацию: http://nodejs.org/api/http.html#http_http_request_options_callback

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededexpressjs.com/api.html#req.paramsError: User Rate Limit Exceeded
Error: User Rate Limit Exceededif (req.method != 'GET')
0

Теперь вы можете использовать пакет в npm = & gt; «метод-переопределение», который обеспечивает промежуточный уровень, который переопределяет «req.method»; имущество.

По сути, ваш клиент может отправить запрос POST с измененным & quot; req.method & quot ;, что-то вроде/registration/passportID?_method=PUT.

?_method=XXXXX

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

Поток состоит в том, что клиент отправляет запрос POST с данными на вашу серверную часть, а промежуточное программное обеспечение преобразует запрос и запускает соответствующий & quot; app.put ... & quot; маршрут.

Я думаю, что это способ компромисса. Для получения дополнительной информации:Метод-переопределение

Похожие вопросы