app.js
var express = require('express');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var helloRouter = require('./routes/hello');
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
var session_opt={
secret:'keyboard cat',
resave:false,
saveUninitialize:false,
cookie:{maxAge:60*60*1000}
};
app.use(session(session_opt));
app.use('/hello',helloRouter);
module.exports = app;
hello.js
var express= require('express');
var router = express.Router();
router.get('/',(req,res,next)=>{
var msg = 'write something';
if(req.session.message != undefined){
msg = "Last Message"+req.session.message;
}
var data={
title:'Hello',
content:msg
};
res.render('hello',data);
});
router.post('/post',(req,res,next)=>{
console.log(req.body);
var msg = req.body['message'];
req.session.message=msg;
var data={
title:'Hello!',
content:"Last Message"+req.session.message
};
res.render('hello',data);
});
module.exports = router;
hello.ejs
<form action="/hello/post" method="post">
<input type="text" name="message">
<input type="submit" value="Submit">
</form>
I understand what express.json() will do from this (No.5 a) Then I debug my above coding using console.log(req.body) in hello.js
when I submitted the form, this was displayed
Using express.json()
[Object: null prototype] { message: 'ABC' }
Not using express.json() (I deleted it from app.js)
[Object: null prototype] { message: 'ABC' }
So There is nothing different.what is the purpose for using express.json(). even I don't know my understanding of express.json() is correct or not.