在Express中获取表单请求数据
只要是通过URL直接在网址请求的都是get请求 获取get请求数据:
Express内置了一个api,可以直接通过req.query 来获取数据
var comment = req.query;
获取post请求数据:
在Express中没有内置获取表单post请求体的api,这里我们需要使用一个第三方包body-parser 来获取数据。
安装:
npm install --save body-parser
配置:
// 配置解析表单 POST 请求体插件(注意:一定要在 app.use(router) 之前 )
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
使用:
app.use(function (req, res) {
res.setHeader('Content-Type', 'text/plain')
res.write('you posted:\n')
res.end(JSON.stringify(req.body, null, 2))
})
就直接: var comment = req.body;
例如:
server.get('/pinglun', function (req, res) {
var comment = req.query;
comment.dateTime = '2022年1月29日23:02:18';
comments.unshift(comment);
res.redirect('/');
});
server.post('/post', function (req, res) {
var comment = req.body;
comment.dateTime = '2022年2月3日13:02:42';
comments.unshift(comment);
res.redirect('/');
})
在Express中配置使用express-session 插件操作
参考文档:https://github.com/expressjs/session
安装:
npm install express-session
配置:
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}))
使用:
req.session.foo = 'bar';
req.session.foo
req.session.foo = null;
delete req.session.foo
提示:
默认Session数据时内存储数据,服务器一旦重启,真正的生产环境会把Session进行持久化存储。
|