我正在建立一个注册表格(护照本地作为身份验证,表格作为表格助手)。
因为注册只知道GET和POST我想在一个函数中完成整个处理。
换句话说,我正在寻找类似的东西:
exports.register = function(req, res){
if (req.isPost) {
// do form handling
}
res.render('user/registration.html.swig', { form: form.toHTML() });
};
答案 0 :(得分:87)
答案很简单
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
答案 1 :(得分:0)
现在你可以在npm =>中使用包了。 “method-override”,它提供了一个覆盖“req.method”属性的中间件层。
基本上,您的客户端可以使用修改后的“req.method”发送POST请求,例如/registration/passportID?_method=PUT
。
?_方法= XXXXX
部分用于中间件识别这是一个秘密的PUT请求。
流程是客户端将带有数据的POST req发送到服务器端,中间件转换req并运行相应的“app.put ...”路由。
我认为这是妥协的一种方式。有关详细信息:method-override