Express.js get http method in controller

我正在建立一个登记表格(本地护照作为认证,表格作为表格助手)。

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

With other words I am searching after something like:

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

答案很简单

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

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

基本上,您的客户机可以使用修改后的“ req.method”(类似于 /registration/passportID?_method=PUT)发送 POST 请求。

那个

方法 = XXXXX

部分是为中间件,以确定这是一个卧底 PUT 请求。

其流程是,客户机将带有数据的 POST req 发送到服务器端,中间件转换 req 并运行相应的“ app.put...”路由。

我认为这是一种妥协的方式。了解更多信息: 重写方法