I have a HTTP function that responds to GET requests by displaying an HTML form, and I'd like to respond to POST requests from that form. Unfortunately, it looks like Cloud Functions don't support application/x-www-form-urlencoded request bodies.
exports.setup = function setup(req, resp) {
if (req.method == 'GET') {
// Display a form for the user. The form POSTs to this function.
resp.send(`
<form enctype="application/x-www-form-urlencoded" method="POST">
<input id="foo"></input>
<button>Submit</button>
</form>`);
} else if (req.method == 'POST') {
console.log('got req.body:', req.body);
resp.send(req.body);
}
};
In this example, the log says
got req.body: {}
And the browser displays an empty page.
This SO answer suggests that I should app.use(bodyParser.urlencoded({extended: true})); but it's unclear how to use that app variable with GCF.
via Jason Hall
No comments:
Post a Comment