Try implementing backend with Node's `http`

This commit is contained in:
Nikita Karamov 2021-08-27 15:49:51 +02:00
parent 699f93fdbc
commit e23e590251
No known key found for this signature in database
GPG Key ID: 7FCADEDBB1AEBE44
1 changed files with 19 additions and 16 deletions

View File

@ -16,20 +16,23 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
module.exports = function (req, res) {
let text = "";
let instanceURL = "https://mastodon.social/";
if (req.body) {
if (req.body.text) {
text = req.body.text;
}
if (req.body.instance) {
instanceURL = req.body.instance;
}
}
const http = require("http");
return res.redirect(
303,
instanceURL + "share?text=" + encodeURIComponent(text)
);
};
http
.createServer(async (req, res) => {
const buffers = [];
for await (const chunk of req) {
buffers.push(chunk);
}
const data = Buffer.concat(buffers).toString();
const params = new URLSearchParams(data);
const text = params.get("text") || "";
const instanceURL = params.get("instance") || "https://mastodon.social/";
const finalURL = new URL("share", instanceURL);
finalURL.search = new URLSearchParams({ text }).toString();
res.writeHead(303, { Location: finalURL.toString() }).end();
})
.listen(8000);