題名の通り、入力した値をサーバーで受け取ろうとするとundifinedが出力されます
app.js
javascript
1const express = require('express'); 2const app = express() 3const path = require('path'); 4const expressHandlebars = require('express-handlebars'); 5 6var http = require('http').Server(app); 7 8app.set('views', path.join(__dirname, 'views')) 9app.engine('handlebars', expressHandlebars({ defaultLayout: 'layout' })) 10app.set('view engine', 'handlebars') 11 12 13app.use('/', require('./routes/index')) 14app.use((req, res, next) => { 15 res.render('notFound') 16}); 17 18 19// サーバーをポート5000番で起動 20//app.listen(5000, () => console.log('Server started listening on port 5000!')) 21http.listen(8000, function () { 22 console.log('listening on *:8000'); 23}); 24
index.js
javascript
1const express = require('express') 2const router = express.Router() 3router.route('/home').get((req,res)=>{ 4 res.render('index') 5}) 6 7router.route('/input') 8.get((req, res) => { 9 res.render('create') 10}) 11.post(async (req, res, next) => { 12 console.log(req.body)//←ここでundifined 13 res.redirect('/home'); 14}) 15module.exports = router
input.handlebars
handlebars
1<div> 2<form class="form-signin" action="/create" method="POST"> 3 <h2 class="form-signin-heading">Please sign in</h2> 4 <input type="text" id="inputEmail" name="email" class="form-control" placeholder="Email address" required autofocus> 5<button class="btn btn-lg btn-default btn-block" type="submit">Submit</button> 6</form> 7</div>