Почему возникает ошибка Cannot POST и как её исправить? Как получить и обработать данные?
При нажатии кнопки появляется Cannot POST /index.ejs
Что ни так?
И ещё вопрос. У меня есть страница index.ejs, где вводятся данные и post.ejs, где будут отображаться данные. Как это сделать?
Мой проект выглядит вот так:
-views->index.ejs
-views->post.ejs
-app.js
app.js (в корневой директории)
const port = 3000;
var express = require ('express'),
bodyParser = require('body-parser'),
app = express();
app.use [bodyParser.urlencoded({extended:false})];
app.use [bodyParser.json()];
app.get ("/", function(req,res){
res.render ('index.ejs');
});
app.post("/", function (request, response) {
if(!request.body) return response.sendStatus(400);
console.log(request.body);
response.send(`<h2>${request.body.fName} - ${request.body.sex} - ${request.body.select} </h2>`);
});
app.listen(port, function (){
console.log ('Work on port: ' + port);
});
views/index.ejs (в папке)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="centerLayer" >
<form action="index.ejs" method="post" >
<div>
<b class = 'hd'>Full name:</b><br>
<input type="text" name="fName" size="35" maxlength="60">
</div>
<div>
<input type="radio" id="ChoiceMen" name="sex" value="men" checked>
<label for="Choice1">Men</label>
<input type="radio" id="ChoiceWomen" name="sex" value="women">
<label for="Choice2">Women</label>
</div>
<div>
<select name ="theSelect">
<option name ="Birthday" >Birthday</option>
</select>
</div>
<div>
<input type="submit" value="Ok" />
</div>
</form>
</div>
</body>
</html>
views/post.ejs
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>тест</h1>
</body>
</html>