Node Js Form data api and html response

 


const express = require("express");
const app = express();
// Parse JSON bodies (as sent by API clients)
app.use(express.json());
// Parse URL-encoded bodies (as sent by HTML forms)
app.use(express.urlencoded({ extended: true }));
// Parse "multipart/form-data" using multer

app.post("/insert", function (req, res) {
  try {
    console.log(req.body);
    if (req.body.res_type === "1") {
      //for api response
      res.status(200).send({ status: 200, name: req.body.name });
    } else if (req.body.res_type === "2") {
      //for html respponse
      res.send(`
    <a href="/"><input type="button" value="Go Back""/></a>
    <br/>
    <br/>
    <input type="text" class="form-control-file" name="name" value="${req.body.name}">
   `);
    }
  } catch (e) {
    throw e;
  }
});

app.get("/", function (req, res) {
  res.send(`
  <div style="margin:100px">
    <form action="/insert" method="post">
        <div class="form-group">
        <input type="text" class="form-control-file" name="name">
        <label for="res_type">Choose a type:</label>

        <select name="res_type" id="res_type">
            <option value="1">Json Api</option>
            <option value="2">Form Value</option>
        </select>
        <input type="submit" value="Get me the stats!" class="btn btn-default">            
        </div>
    </form>
    </div>
    `);
});

app.listen(3000, () => {
  console.log(`App running at http://localhost:3000`);
});



Comments