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>
我了解this(第5号a)中express.json()的作用 然后我在hello.js中使用console.log(req.body)调试上述代码
我提交表单时,显示了该信息
使用express.json()
[Object: null prototype] { message: 'ABC' }
不使用express.json()(我从app.js中删除了它)
[Object: null prototype] { message: 'ABC' }
所以没有什么不同。使用express.json()的目的是什么。 甚至我都不知道我对express.json()的理解是否正确。
答案 0 :(得分:2)
您没有提交JSON,因此它什么也不做。
您的req.body
来自express.urlencoded()
,后者从HTML表单中解析正文。