express的参数接收也是非常之方便
对于express共有三中形式的参数
1、直接get方式附在url?之后key=value形式的 xxx.xx?y=x
此种直接使用req.query.y就可以取到参数y的值了
2、路径参数,和类似路径 xxyy/name/pass,想对应的路由为app.get('/xxyy/:name/:psss')这时name和pass就为路径参数:name,name就为形参名,同样pass为形参名
对于此种方式的参数需要使用req.params.name 和req.params.pass就可以可以接收了(req.params['name'])
3、对于表单POST过来的参数,需要借助于中间件来接收,body-parser和multer,body-parse不能处理文件上传,multer可以处理文件上传,一把multer已经具有body-parser的功能
body-parser 首先需要安装
npm install body-parser --save
// 导入express模块
var express = require('express');// 创建app对象 var app = express();
app.use(bodyParser.urlencoded())
app.post('/bodyParams',function(req,res){ console.log('嗯进来了') console.log('name:'+req.body.name) console.log('pas:'+req.body.pass) })
然后就可以直接使用req.body.p参数名 来接收了,但是不能接收文件,
如果要上传文件需要使用multer中间件:
npm install multer --save
var express = require('express');// 创建app对象 var app = express();
// 文件暂存目录(貌似muter已经具有了bodyParder的功能) app.use(multer({'dest':'./dest'}))
app.post('/bodyParams',function(req,res){ console.log('嗯进来了') console.log('name:'+req.body.name) console.log('pas:'+req.body.pass) console.log('av:'+req.files.avatar) res.end() })
可以使用req.files.文件名称来访问文件了
multer具有了body-parser的接收普通表单post参数的功能和文件处理功能,但是multer只能处理enctype="multipart/form-data"的表单 对于没有使用enctype="multipart/form-data" 的表单参数multer也是不能处理的,所以一般mutler和body-parser配合使用,body-parser处理表单 参数,而multer只处理文件