NodeJs Попробуйте оценить форму HTML - PullRequest
0 голосов
/ 20 октября 2019

У меня проблема с оценкой HTML-формы с использованием NodeJs и Express.

Это мой код Java Script Code

Моя цель - обработать HTML-форму в nodeJs с помощью Express.

const express = require('express');
const http = require('http');
const fs = require('fs');
const app = express();

var warehouses = [];

app.use(express.urlencoded({extended: true}));

  app.use("/warehouse", (req, res, next) => {
    fs.readFile("./addWarehouse.html", function(err, data) {

    res.write(data);
    next();

    });

  });



  app.post("/warehouse/add", (req, res) => {


    console.log("ADDED");

    // warehouses.push(req.body.nWarehouse);
    console.log('Request Type:', req.method);
    res.end;
  });

app.listen(8080);



А это моя HTML-форма

<!DOCTYPE html>

<!-- <head>
    <meta charset="utf-8" />
    <title>Coole Seite</title>

</head> -->
<body>
    <h1>Warehouses</h1>

    <form method='POST' action="/warehouse/add">
        <input type="text" name="nWarehouse"  id="nWarehouse"/>
        <input typse="submit" value="bitte sende" />
     </form>

</body>
</html>

Я попытался отладить ее с помощью вывода на консоль и понял, что он никогда не обращается к app.use ("/ submit / add /«...» часть.

Я был бы рад получить совет.

1 Ответ

0 голосов
/ 21 октября 2019

Здесь, если вы хотите оценить форму, существующую в addWarehouse.html, которая должна отображаться при переходе к /warehouse, а форма должна быть отправлена ​​на /warehouse/add.

Концепция промежуточного программного обеспечения, используемая здесь через app.use(...), вообще не требуется.

Экспресс-код:

const express = require('express');
const http = require('http');
const fs = require('fs');
const app = express();

var warehouses = [];

app.use(express.urlencoded({extended: true}));

//show addWareHouse.html for /warehouse
/* serving the HTML via fs */
app.get("/warehouse", (req, res, next) => {
  fs.readFile("./addWarehouse.html", function(err, data) {
    res.writeHead(200, { "Content-Type": "text/html" });
    res.write(data);
    res.end();
  });

//add warehouse form submit for /warehouse/add
app.post("/warehouse/add", (req, res) => {
  console.log("ADDED");
  console.log("REQUEST PARAM::", req.body);
  //do you adding of ware-house stuff here
  console.log("Request Type:", req.method);
  return res.end();
});

app.listen(8080, () => console.log(`app listening on port 8080!`));

Примечание: Существуют и другие удобные способы обслуживания представлений (HTML) в выражениях, таких как механизмы шаблонов, res.sendFile() и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...