77

我正在构建一个注册表单(本地护照作为身份验证,表单作为表单助手)。

因为注册只知道 GET 和 POST 我想在一个函数中完成整个处理。

换句话说,我正在寻找类似的东西:

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

2 回答 2

144

答案很简单

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

于 2012-06-24T10:54:52.207 回答
-4

现在你可以在 npm => "method-override" 中使用一个包,它提供了一个覆盖 "req.method" 属性的中间件层。

基本上,您的客户端可以发送带有修改后的“req.method”的 POST 请求,例如/registration/passportID?_method=PUT.

?_method=XXXXX

部分是让中间件识别这是一个秘密 PUT 请求。

流程是客户端向您的服务器端发送一个带有数据的 POST 请求,中间件翻译请求并运行相应的“app.put...”路由。

我认为这是一种妥协的方式。更多信息:方法覆盖

于 2018-05-16T21:34:28.253 回答